получить имя файла для загрузки файла в документе с помощью JavaScript - PullRequest
23 голосов
/ 26 ноября 2009
var fu1 = document.getElementById("FileUpload1");

как я могу получить имя файла fileupload control с id FileUpload1

Ответы [ 7 ]

35 голосов
/ 26 ноября 2009

Попробуйте свойство value, например:

var fu1 = document.getElementById("FileUpload1");
alert("You selected " + fu1.value);

ПРИМЕЧАНИЕ : похоже, FileUpload1 - это серверный элемент управления FileUpload на стороне сервера ASP.Net. Если это так, вы должны получить его идентификатор, используя свойство ClientID, например:

var fu1 = document.getElementById("<%= FileUpload1.ClientID %>");
31 голосов
/ 06 ноября 2013

В Google Chrome element.value вернуть имя + путь, но поддельный путь. Таким образом, для моего случая я использовал атрибут name в файле, как показано ниже:

function getFileData(myFile){
   var file = myFile.files[0];  
   var filename = file.name;
}

это звонок со страницы:

<input id="ph1" name="photo" type="file" class="jq_req" onchange="getFileData(this);"/>
3 голосов
/ 24 января 2012

RaYell, Вам не нужно анализировать возвращаемое значение. document.getElementById("FileUpload1").value возвращает только имя файла с расширением. Это было полезно для меня, потому что я хотел скопировать имя файла для загрузки в поле ввода с названием «title». В моем приложении загруженный файл переименовывается в индекс, созданный серверной базой данных, а заголовок сохраняется в базе данных.

3 голосов
/ 26 ноября 2009

Попробуйте document.getElementById("FileUpload1").value в этом значении должен быть указан путь для загрузки файла, просто удалите все каталоги из этого значения, и у вас будет имя файла.

2 голосов
/ 05 октября 2018

Чтобы получить только загруженный файл, используйте это имя,

fake_path=document.getElementById('FileUpload1').value
alert(fake_path.split("\\").pop())

FileUpload1 значение содержит поддельный путь, который вы, вероятно, не хотите, чтобы избежать использования split и pop последнего элемента из вашего файла.

2 голосов
/ 24 февраля 2016

Используя подобный код в форме, я могу захватить исходное имя файла загрузки исходного кода, скопировать его во второе простое поле ввода. Это позволяет пользователю указать альтернативное имя файла для загрузки в запросе на отправку, поскольку имя файла для загрузки файла является неизменным.

    <input type="file" id="imgup1" name="imagefile">
      onchange="document.getElementsByName('imgfn1')[0].value = document.getElementById('imgup1').value;">
    <input type="text" name="imgfn1" value="">
2 голосов
/ 26 ноября 2009

Попробуйте

var fu1 = document.getElementById("FileUpload1").value;
...