Ну, я разработчик JavaScript и попытаюсь объяснить его значение, относящееся к JavaScript.
Рассмотрим сценарий, в котором вы хотите сопоставить cat is animal
, когда вы хотите совместить кошку и животное, и оба должны иметь a is
между ними.
// this will ignore "is" as that's is what we want
"cat is animal".match(/(cat)(?: is )(animal)/) ;
result ["cat is animal", "cat", "animal"]
// using lookahead pattern it will match only "cat" we can
// use lookahead but the problem is we can not give anything
// at the back of lookahead pattern
"cat is animal".match(/cat(?= is animal)/) ;
result ["cat"]
//so I gave another grouping parenthesis for animal
// in lookahead pattern to match animal as well
"cat is animal".match(/(cat)(?= is (animal))/) ;
result ["cat", "cat", "animal"]
// we got extra cat in above example so removing another grouping
"cat is animal".match(/cat(?= is (animal))/) ;
result ["cat", "animal"]
В целях безопасности браузеры этого не допускают, то есть JavaScript в браузере не имеет доступа к файловой системе, однако, используя API файлов HTML5, только Firefox предоставляет свойство mozFullPath
, но если вы попытаетесь получить значение, оно вернет пустая строка:
$('input[type=file]').change(function () {
console.log(this.files[0].mozFullPath);
});
Поэтому не теряйте время.
edit: Если вам нужен путь к файлу для чтения файла, вы можете использовать API FileReader . Вот связанный вопрос о SO: Предварительный просмотр изображения перед его загрузкой.
Вы можете, если вы загружаете целую папку для вас
<input type="file" webkitdirectory directory multiple/>
, событие изменения будет содержать:
.target.files[...].webkitRelativePath: "FOLDER/FILE.ext"
вы никогда не должны этого делать .... и я думаю, что попробовать его в последних браузерах бесполезно (из того, что я знаю) .. все последние браузеры, с другой стороны, не позволят этого ....
некоторые другие ссылки, которые вы можете пройти, чтобы найти обходной путь, как получение значения serveride, но не в clientide (javascript)
Полный путь от ввода файла с помощью jQuery Как получить путь к файлу из формы ввода HTML в Firefox 3
Вы не можете этого сделать - браузер не допустит этого из-за проблем с безопасностью.
Когда файл выбирается с использованием типа input type = file, значение свойства value зависит о значении параметра безопасности «Включить локальный каталог при загрузке файлов на сервер» для зоны безопасности, используемой для отображения веб-страницы, содержащей входной объект.
Полноценное имя файла выбранного файла возвращается, только когда этот параметр включен. Когда параметр отключен, Internet Explorer 8 заменяет путь локального диска и каталога на строку C: \ fakepath \, чтобы предотвратить неприемлемое раскрытие информации.
blockquote>И другие
Вы пропустили
);
это в конце функции события изменения.Также не создавайте функцию для события изменения, а просто используйте ее, как показано ниже,
<script type="text/javascript"> $(function() { $('#fileUpload').on('change',function () { var filePath = $(this).val(); console.log(filePath); }); }); </script>
имеет элемент массива и вызов массива files
содержит все необходимые вам материалы
var file = document.getElementById("upload");
file.addEventListener("change", function() {
for (var i = 0; i < file.files.length; i++) {
console.log(file.files[i].name);
}
}, false);
Вы не можете. Безопасность останавливает вас за то, что вы знаете что-либо о системе подачи клиентского компьютера - у нее может и не получиться! Это может быть MAC, ПК, планшет или интернет-холодильник - вы не знаете, не можете знать и не знать. И пусть вам полный путь может дать вам некоторую информацию о клиенте - особенно, если это сетевой диск, например.
Фактически вы можете получить его в определенных условиях, но для этого требуется элемент управления ActiveX, и не будет работать в 99,99% случаев.
Вы все равно не можете использовать его для восстановления файла в исходное местоположение (так как вы абсолютно не контролируете, где хранятся загрузки, или даже если они хранится), так что на практике это не так много для вас.
Вы имели в виду это?
$('#i_file').change( function(event) {
var tmppath = URL.createObjectURL(event.target.files[0]);
$("img").fadeIn("fast").attr('src',tmppath);
});
Вы можете использовать следующий код для получения рабочего локального URL для загруженного файла:
<script type="text/javascript">
var path = (window.URL || window.webkitURL).createObjectURL(file);
console.log('path', path);
</script>
Попробуйте это:
Это даст вам временный путь, а не точный путь, вы можете использовать этот скрипт, если хотите показать выбранные изображения, как в этом примере jsfiddle (Попробуйте, выбрав изображения как а также другие файлы): -
Вот код: -
HTML: -
<input type="file" id="i_file" value="">
<input type="button" id="i_submit" value="Submit">
<br>
<img src="" width="200" style="display:none;" />
<br>
<div id="disp_tmp_path"></div>
JS: -
$('#i_file').change( function(event) {
var tmppath = URL.createObjectURL(event.target.files[0]);
$("img").fadeIn("fast").attr('src',URL.createObjectURL(event.target.files[0]));
$("#disp_tmp_path").html("Temporary Path(Copy it and try pasting it in browser address bar) --> <strong>["+tmppath+"]</strong>");
});
Не то, что вы искали, но может быть, это может помочь вам где-то.