Recentemente, encontrei alguns problemas em obter o caminho do arquivo, porque precisava fazer upload de arquivos para o Oracle Blob. Por razões de segurança, o novo navegador não suporta a obtenção diretamente de URLs locais. Eu encontrei alguns métodos online, como segue:
<script type = "text/javascript"> // fx Obtenha o método do caminho do arquivo Função ReadFileFireFox (FileBrowser) {try {Netscape.Security.privileGemanager.enableprivilege ("universalxpconnect"); } catch (e) { alert('The local file cannot be accessed due to browser security settings. To overcome this, please follow the following steps: (1) Enter "about:config" in the address bar; (2) Right-click and select New->Boolean; (3) Enter "signed.applets.codebase_principal_support" (excluding quotes) as the name of a new preference; (4) Click OK and tente recarregar o arquivo '); retornar; } var filename = FileBrowser.value; // Esta etapa pode obter o caminho completo do cliente. Se o julgamento abaixo é muito complicado e o julgamento abaixo também é muito complicado. var arquivo = components.classes ["@mozilla.org/file/local ;1"] .createInstance (components.interfaces.nsilocalfile); tente {// slashes traseiros para windows file.initwithpath (filename.replace (//// g, "////")); } catch (e) {if (e.result! = components.results.ns_error_file_unrecognized_path) tiro e; alerta ("arquivo '" + nome do arquivo + "' não pode ser carregado: os caminhos relativos não são permitidos. Forneça um caminho absoluto para este arquivo."); retornar; } if (file.exists () == false) {alert ("file '" + filename + "' não encontrado."); retornar; } return file.path;} // Obtenha o caminho de acordo com diferentes navegadores function getvl (obj) {// Juiz navegador var sys = {}; var ua = navegator.UserAgent.TolowerCase (); var s; (s = ua.match (/msie ([/d. ]+)/))? Sys.ie = s [1]: (s = ua.match (/firefox // ([/d.]+)/))? Sys.firefox = s [1]: (s = ua.match (/chrome // ([/d.]+)/))? Sys.chrome = s [1]: (s = ua.match (/ópera. ([/D.]+)/))? Sys.opera = s [1]: (s = ua.match (/versão // ([/d.]+).*Safari/))? Sys.safari = s [1]: 0; var file_url = ""; if (sys.ie <= "6.0") {//ie5.5,ie6.0 file_url = obj.value; } else if (sys.ie> = "7.0") {// ie7, ie8 obj.select (); file_url = document.selection.createrange (). text; } else if (sys.firefox) {// fx // file_url = document.getElementById ("file"). arquivos [0] .GetasDataurl (); // O caminho obtido é a sequência criptografada reconhecida por ff file_url = readfileFireFox (obj); } else if (sys.chrome) {file_url = obj.value; } // alert (file_url); Document.getElementById ("Texto"). INNERHTML = "Obtenha o caminho completo do domínio do arquivo como:"+file_url;} </script> <h1> Método JS para obter o caminho completo do arquivo de arquivo, compatível com diferentes navegadores </h1> <div id = "" Style = "cor:#f; OnChange = "getvl (this)" />O código acima é usado normalmente no IE 6 7 8. Sob IE9, document.selection.Createrange () nega o acesso, que parece ser melhorado.
Finalmente, o teste constatou que no IE9, se o controle do arquivo receber foco, document.selection.createrange () negará acesso.
Portanto, você só precisa adicionar uma frase obj.blur () após obj.select ().
EX:
caso contrário, if (sys.ie> = "7.0") {// ie7, ie8 obj.leclect (); obj.blur (); file_url = document.selection.createrange (). text; } // obj = document.getElementById ("arquivo");O método acima (recomendado) para obter o caminho absoluto do arquivo de entrada no JS é todo o conteúdo compartilhado pelo editor. Espero que possa lhe dar uma referência e espero que você possa apoiar mais o wulin.com.