<input type="file" id="file-id" name="file_name" onchange="theimage();">
Это моя кнопка загрузки.
<input type="text" name="file_path" id="file-path">
Это текстовое поле, где я должен показать полный путь к файлу.
function theimage(){
var filename = document.getElementById('file-id').value;
document.getElementById('file-path').value = filename;
alert(filename);
}
Это JavaScript, который решает мою проблему. Но в значении предупреждения дает мне
C:\fakepath\test.csv
и Мозилла дает мне:
test.csv
Но я хочу локальный полный путь к файлу . Как решить эту проблему?
Если это связано с проблемой безопасности браузера, каким должен быть альтернативный способ сделать это?
javascript
html
dom
file-upload
e_maxm
источник
источник
browser security issue
~ если он реализован в браузере (правильно), то вряд ли вы сможете его обойтиC:\fakepath
, так что теперь все знают мою структуру каталогов.Ответы:
Некоторые браузеры имеют функцию безопасности, которая не позволяет JavaScript знать локальный полный путь вашего файла. Это имеет смысл - как клиент, вы не хотите, чтобы сервер знал файловую систему вашего локального компьютера. Было бы хорошо, если бы все браузеры делали это.
источник
c:\users\myname\desktop
или/Users/myname/Desktop/
или любой другой ). Это не то, что веб-сервер знает о бизнесе.использование
вместо того
источник
Я использую объект FileReader для
onchange
события ввода для вашего типа входного файла! В этом примере используется функция readAsDataURL, и по этой причине у вас должен быть тег. Объект FileReader также имеет readAsBinaryString для получения двоичных данных, которые впоследствии можно использовать для создания того же файла на вашем сервере.Пример:
источник
Если вы зайдете в Internet Explorer, Сервис, Интернет, Безопасность, Пользовательский, найдите «Включить путь к локальному каталогу при загрузке файлов на сервер» (это довольно далеко) и нажмите «Включить». Это будет работать
источник
Я рад, что браузеры заботятся о том, чтобы спасти нас от навязчивых сценариев и тому подобного. Я не доволен тем, что IE помещает в браузер что-то, что делает простое исправление стиля похожим на хак-атаку!
Я использовал <span> для представления файлового ввода, чтобы я мог применить соответствующий стиль к <div> вместо <input> (еще раз, из-за IE). Теперь из-за этого IE хочет показать пользователю путь со значением, которое гарантированно защитит его и в крайнем случае (если не полностью отпугнет?!) ... БОЛЬШЕ IE-CRAP!
В любом случае, спасибо тем, кто разместил объяснение здесь: IE Browser Security: добавив "fakepath" к пути к файлу во входных данных [type = "file"] , я собрал небольшой верхний фиксатор ...
Приведенный ниже код выполняет две вещи: он исправляет ошибку IE8, из-за которой событие onChange не срабатывает до тех пор, пока в поле загрузки не отображается onBlur, и не обновляет элемент с очищенным путем к файлу, который не пугает пользователя.
источник
Я столкнулся с той же проблемой. В IE8 это можно обойти, создав скрытый ввод после контроля ввода файла. Заполните это значением предыдущего брата. В IE9 это также исправлено.
Причиной, по которой я хотел узнать полный путь, было создание предварительного просмотра изображения javascript перед загрузкой. Теперь мне нужно загрузить файл, чтобы создать предварительный просмотр выбранного изображения.
источник
Если вам действительно нужно отправить полный путь к загруженному файлу, вам, вероятно, придется использовать что-то вроде подписанного Java-апплета, поскольку нет никакой возможности получить эту информацию, если браузер ее не отправляет.
источник
кажется, вы не можете найти полный путь в вашем локальном хосте с помощью js, но вы можете скрыть поддельный путь, чтобы просто показать имя файла. Используйте jQuery, чтобы получить файл с выбранным именем файла без пути
источник
Используйте программы для чтения файлов:
источник
Здесь, в моем случае, я использую среду разработки asp.net, поэтому я хотел загрузить эти данные в асинхронном ajax-запросе, в [webMethod] вы не можете перехватить загрузчик файлов, так как он не является статическим элементом, поэтому мне пришлось сделайте оборот для такого решения, исправив путь, затем преобразуйте искомое изображение в байты, чтобы сохранить его в БД.
Вот моя функция JavaScript, надеюсь, она вам поможет:
здесь только для тестирования:
источник
Дополняя использование ответа Сардеша Шармы:
Для полного пути.
источник
undefined
ко мне в FireFox 75.0. Наpath
самом деле существует? Есть ли у вас какие-либо ссылки на документацию об этом?