Получите значение input type="file", если оно имеет несколько выбранных файлов
Возможный дубликат:
Извлечение имен файлов из элемента управления загрузкой нескольких файлов с помощью javascript
Из HTML5 input type="file" позволяет пользователям выбирать несколько файлов, добавляя multiple = "multiple":
<input type="file" multiple="multiple" />
Мой вопрос: как я могу получить значение этого ввода? При использовании значения он возвращает только имя файла для выбранного первого файла, но при выборе более одного я не могу просмотреть другие.
Что у меня:
<input type="file" multiple="multiple" onchange="alert(this.value)"
onmouseout="alert(this.value) />
который, как я уже говорил, отображает только имя одного из выбранных файлов.
ПРИМЕЧАНИЕ. Я не хочу редактировать значение (я знаю, что это невозможно) только имя файлов
Спасибо!
Ответы
Ответ 1
Выбранные файлы хранятся в массиве: [input].files
Например, вы можете получить доступ к элементам
// assuming there is a file input with the ID `my-input`...
var files = document.getElementById("my-input").files;
for (var i = 0; i < files.length; i++)
{
alert(files[i].name);
}
Для jQuery-комфортных людей это так же легко
// assuming there is a file input with the ID `my-input`...
var files = $("#my-input")[0].files;
for (var i = 0; i < files.length; i++)
{
alert(files[i].name);
}
Ответ 2
Вы используйте свойство input.files
. Это коллекция Файловых объектов, и каждый файл имеет свойство name
:
onmouseout="for (var i = 0; i < this.files.length; i++) alert(this.files[i].name);"