Как получить полный путь к файлу в jQuery или JavaScript с помощью jsp [duplicate]

Вы можете использовать группы захвата для организации и анализа выражения. У группы, не связанной с захватом, есть первое преимущество, но у нее нет накладных расходов второго. Вы все же можете сказать, что группа, отличная от захвата, является необязательной, например.

Предположим, что вы хотите сопоставить числовой текст, но некоторые цифры могут быть записаны как 1, 2, 3, 4, ... Если вы хотите захватить числовую часть, но не (необязательный) суффикс, вы можете использовать группу, не связанную с захватом.

([0-9]+)(?:st|nd|rd|th)?

Это будет соответствовать номерам в форме 1, 2, 3 ... или в форма 1, 2, 3, ... но она будет только фиксировать числовую часть.

165
задан Yogesh Pingle 4 March 2013 в 14:24
поделиться

9 ответов

В целях безопасности браузеры этого не допускают, то есть JavaScript в браузере не имеет доступа к файловой системе, однако, используя API файлов HTML5, только Firefox предоставляет свойство mozFullPath, но если вы попытаетесь получить значение, оно вернет пустая строка:

$('input[type=file]').change(function () {
    console.log(this.files[0].mozFullPath);
});

http://jsfiddle.net/SCK5A/

Поэтому не теряйте время.

edit: Если вам нужен путь к файлу для чтения файла, вы можете использовать API FileReader . Вот связанный вопрос о SO: Предварительный просмотр изображения перед его загрузкой.

103
ответ дан SaidbakR 27 August 2018 в 21:19
поделиться

Вы можете, если вы загружаете целую папку для вас

<input type="file" webkitdirectory directory multiple/>

, событие изменения будет содержать:

.target.files[...].webkitRelativePath: "FOLDER/FILE.ext"
1
ответ дан Blauhirn 27 August 2018 в 21:19
поделиться

вы никогда не должны этого делать .... и я думаю, что попробовать его в последних браузерах бесполезно (из того, что я знаю) .. все последние браузеры, с другой стороны, не позволят этого ....

некоторые другие ссылки, которые вы можете пройти, чтобы найти обходной путь, как получение значения serveride, но не в clientide (javascript)

Полный путь от ввода файла с помощью jQuery Как получить путь к файлу из формы ввода HTML в Firefox 3

1
ответ дан Community 27 August 2018 в 21:19
поделиться

Вы не можете этого сделать - браузер не допустит этого из-за проблем с безопасностью.

Когда файл выбирается с использованием типа input type = file, значение свойства value зависит о значении параметра безопасности «Включить локальный каталог при загрузке файлов на сервер» для зоны безопасности, используемой для отображения веб-страницы, содержащей входной объект.

Полноценное имя файла выбранного файла возвращается, только когда этот параметр включен. Когда параметр отключен, Internet Explorer 8 заменяет путь локального диска и каталога на строку C: \ fakepath \, чтобы предотвратить неприемлемое раскрытие информации.

И другие

Вы пропустили ); это в конце функции события изменения.

Также не создавайте функцию для события изменения, а просто используйте ее, как показано ниже,

<script type="text/javascript">

    $(function()
    {
        $('#fileUpload').on('change',function ()
        {
            var filePath = $(this).val();
            console.log(filePath);
        });
    });

</script>
17
ответ дан Dipesh Parmar 27 August 2018 в 21:19
поделиться

имеет элемент массива и вызов массива 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);
0
ответ дан Jeeva Kumar 27 August 2018 в 21:19
поделиться

Вы не можете. Безопасность останавливает вас за то, что вы знаете что-либо о системе подачи клиентского компьютера - у нее может и не получиться! Это может быть MAC, ПК, планшет или интернет-холодильник - вы не знаете, не можете знать и не знать. И пусть вам полный путь может дать вам некоторую информацию о клиенте - особенно, если это сетевой диск, например.

Фактически вы можете получить его в определенных условиях, но для этого требуется элемент управления ActiveX, и не будет работать в 99,99% случаев.

Вы все равно не можете использовать его для восстановления файла в исходное местоположение (так как вы абсолютно не контролируете, где хранятся загрузки, или даже если они хранится), так что на практике это не так много для вас.

11
ответ дан Rajshekar Reddy 27 August 2018 в 21:19
поделиться

Вы имели в виду это?

$('#i_file').change( function(event) {
var tmppath = URL.createObjectURL(event.target.files[0]);
    $("img").fadeIn("fast").attr('src',tmppath);       
});

10
ответ дан Rubyrider 27 August 2018 в 21:19
поделиться

Вы можете использовать следующий код для получения рабочего локального URL для загруженного файла:

<script type="text/javascript">    
    var path = (window.URL || window.webkitURL).createObjectURL(file);
    console.log('path', path);
</script>
5
ответ дан Steffen Brem 27 August 2018 в 21:19
поделиться

Попробуйте это:

Это даст вам временный путь, а не точный путь, вы можете использовать этот скрипт, если хотите показать выбранные изображения, как в этом примере jsfiddle (Попробуйте, выбрав изображения как а также другие файлы): -

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>");
});

Не то, что вы искали, но может быть, это может помочь вам где-то.

87
ответ дан Vlad Bezden 27 August 2018 в 21:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: