Недавно я столкнулся с некоторыми проблемами в получении пути файла, потому что мне нужно было загрузить файлы в Oracle Blob. По соображениям безопасности новый браузер не поддерживает непосредственное получение местных URL -адресов. Я нашел несколько методов в Интернете следующим образом:
<script type = "text/javascript"> // fx получить метод файла метода файла readfilefirefox (filebrowser) {try {netscape.security.privilegemanager.enablePilege ("UniversalXpConnect"); } catch (e) {alert ('Локальный файл не может быть доступен из-за настройки безопасности браузера. Чтобы преодолеть это, пожалуйста, выполните следующие шаги: (1) Введите «О: конфигурации» в адресной строке; (2) щелкните правой кнопкой Чтобы перезагрузить файл '); возвращаться; } var fileName = fileBrowser.value; // Этот шаг может получить полный путь клиента. Слишком сложно, суждение ниже, и приведенное ниже суждение также очень сложное. var file = components.classes ["@mozilla.org/file/local;1"] .createinstance (components.interfaces.nsilocalfile); try {// Back Slashes для windows file.initwithpath (filename.replace (//// g, "////")); } catch (e) {if (e.result! = components.results.ns_error_file_unrecoginized_path) throw e; alert ("file '" + filename + "не может быть загружен: относительные пути не допускаются. Пожалуйста, предоставьте абсолютный путь к этому файлу."); возвращаться; } if (file.exists () == false) {alert ("file '" + filename + "' не найден."); возвращаться; } return file.path;} // Получить путь в соответствии с различными функциями браузеров getVl (obj) {// судья браузер var sys = {}; var ua = navigator.useragent.tolowercase (); var s; (s = ua.match (/msie ([/д. Затем+)/))? 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 (/opera. ([/D.]+)/))? Sys.opera = s [1]: (s = ua.match (/version // ([/d.]+).*Safari/))? Sys.safari = s [1]: 0; var file_url = ""; if (sys.ie <= "6.0") {//ie5.5,5.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"). Files [0] .getasDataurl (); // Полученный путь - зашифрованная строка, расположенная FF file_url = readfilefirefox (OBJ); } else if (sys.chrome) {file_url = obj.value; } // alert (file_url); document.getElementById ("text"). innerHtml = "Получить полный путь файлового домена как:"+file_url;} </script> <h1> JS метод, чтобы получить полный путь домена файла, совместимый с различными браузерами </h1> <div id = "style =" color:#f00;> </div> <input ytept = "file =" "Id =" ID "" ID = "" ID = "" ID = "" ID = "" ID = "" ID = "" ID = "" ID = "" ID = "" "ID" "". onchange = "getvl (this)" />Приведенный выше код обычно используется в IE 6 7 8. В соответствии с IE9, Document.selection.createrange () отрицает доступ, который, по -видимому, улучшается.
Наконец, тест обнаружил, что в IE9, если управление файлом получает фокус, Document.selection.createrange () отрицает доступ.
Поэтому вам нужно только добавить предложение obj.blur () после obj.select ().
БЫВШИЙ:
иначе if (sys.ie> = "7.0") {// ie7, ie8 obj.select (); obj.blur (); file_url = document.selection.createrange (). Text; } // obj = document.getElementById ("file");Приведенный выше метод (рекомендуется) для получения абсолютного пути входного файла в JS является всем контентом, общим редактором. Я надеюсь, что это может дать вам ссылку, и я надеюсь, что вы сможете поддержать Wulin.com больше.