Как получить полный путь к файлу при выборе файла с помощью <input type=‘file’>
<input type="file" id="fileUpload">
<script type="text/javascript">
function getFilePath(){
$('input[type=file]').change(function () {
var filePath=$('#fileUpload').val();
});
}
</script>
но filePath var содержит only name
выбранный файл, а не full path
.
Я искал его в сети, но кажется, что по соображениям безопасности браузеры (FF, Chrome) просто дают имя файла.
Есть ли другой способ получить полный путь к выбранному файлу?
javascript
jquery
file-upload
filepath
Йогеш Пингл
источник
источник
Ответы:
По соображениям безопасности браузеры не допускают этого, т. Е. JavaScript в браузере не имеет доступа к файловой системе, однако, используя файловый API HTML5, только Firefox предоставляет
mozFullPath
свойство, но если вы пытаетесь получить значение, он возвращает пустую строку:http://jsfiddle.net/SCK5A/
Так что не трать свое время.
редактировать: если вам нужен путь к файлу для чтения файла, вы можете использовать вместо него FileReader API. Вот связанный вопрос по SO: Предварительный просмотр изображения перед его загрузкой.
источник
Попробуй это:
Это даст вам временный путь, а не точный путь, вы можете использовать этот скрипт, если вы хотите показать выбранные изображения, как в этом примере jsfiddle (попробуйте это, выбрав изображения, а также другие файлы): -
JSFIDDLE
Вот код: -
HTML: -
JS: -
Это не совсем то, что вы искали, но может быть, это может вам где-нибудь помочь.
источник
Вы не можете сделать это - браузер не допустит этого из-за проблем безопасности.
И другие
Вы пропустили
);
это в конце функции изменения события.Также не создавайте функцию для события изменения, просто используйте ее, как показано ниже,
источник
D
каталоге, но значение приходитC:\fakepath\test.xls
Ты не можешь Безопасность останавливает вас за то, что вы ничего не знаете о файловой системе клиентского компьютера - она может даже не иметь ее! Это может быть MAC, ПК, планшет или интернет-холодильник - вы не знаете, не можете знать и не будете знать. Если вы укажете полный путь, это может дать вам некоторую информацию о клиенте, особенно если это, например, сетевой диск.
Фактически вы можете получить его при определенных условиях, но для него требуется элемент управления ActiveX, и он не будет работать в 99,99% случаев.
В любом случае вы не можете использовать его для восстановления файла в исходном месте (так как у вас нет абсолютно никакого контроля над тем, где хранятся загружаемые файлы, или даже если они хранятся), так что на практике это не очень полезно для вас в любом случае.
источник
Вы имели в виду это?
источник
Вы можете использовать следующий код, чтобы получить рабочий локальный URL для загруженного файла:
источник
Одно интересное примечание: хотя это не доступно в Интернете, если вы используете JS в Electron, то вы можете сделать это.
Используя стандартный ввод файла HTML5, вы получите дополнительное
path
свойство для выбранных файлов, содержащее реальный путь к файлу.Полные документы здесь: https://github.com/electron/electron/blob/master/docs/api/file-object.md
источник
Вы можете, если вы загружаете всю папку
Событие изменения будет содержать:
источник
Вы никогда не должны делать это ... и я думаю, что пробовать это в последних браузерах бесполезно (насколько я знаю) ... все последние браузеры, с другой стороны, не допустят этого ...
некоторые другие ссылки, по которым вы можете перейти, чтобы найти обходной путь, такой как получение значения на стороне сервера, но не на стороне клиента (javascript)
Полный путь от ввода файла с помощью jQuery
Как получить путь к файлу из формы ввода HTML в Firefox 3
источник
элемент file имеет и вызов массива
files
содержит все необходимые вещиисточник
Вы можете получить полный путь к выбранному файлу для загрузки только IE11 и MS Edge.
источник