Как получить полный путь загружаемого файла(JavaScript) у input type="file"
value
выдаёт только имя файла
Как получить полный путь загружаемого файла(JavaScript)
Лучший ответ:
Известно, что не все браузеры скрывают полный путь к файлу. IE7, например, этот путь показывает. В Firefox когда-то тоже можно было получить полный путь, вот соответствующий баг, который сейчас исправлен. На форуме Firefox есть тема Firefox 3 don't copy complete path file, в которой обсуждается этот вопрос. Из предложенных решений можно отметить:
1) Трюк с OnBlur
— Создается дополнительное скрытое поле, которое будет хранить полный путь к файлу. Элементу input
с type=file
на событие OnBlur
устанавливается код, который копирует текст (который и является путем к файлу) и помещает этот текст в скрытое поле. Затем значение текстового поля можно использовать как на клиенте так и на сервере. Не известно, работает ли этот трюк во всех версиях Firefox
2) Использование компонента nsIDOMFile. Firefox не дает узнать путь к файлу, но позволяет получить сами данные из этого файла в виде DataUri. Например, такой код позволяет извлечь из input[type=file] картинку и назначить ее элементу img
для предпросмотра.
var oImg = document.getElementById('oBannerPreviewImg');
oImg.src = document
.getElementById('oUploadPicture')
.files[0]
.getAsDataURL();
Оба названных трюка могут работать в Firefox, но в остальных браузерах нужно искать другие решения.
Новые ответы
Очевидно, нельзя получить полный путь загруженного файла. Это создает угрозу безопасности, поэтому браузеры не позволяют делать этого.