--- title: FileList slug: Web/API/FileList tags: - API - File API - Files translation_of: Web/API/FileList ---
<input type="file">
. Также используется для получения списка файлов, брошенных в область веб-контента (Web content) по средствам drag and drop API. Смотрите DataTransfer для детального понимания как это использовать.Примечание: До версии {{Gecko("1.9.2")}}, input элемент поддерживает только один выбранный файл, это значит что FileList содержит только один файл. Начиная с {{Gecko("1.9.2")}}, если input содержит атрибут multiple=true, то FileList может содержать несколько файлов.
Все <input>
элементы имеют файловые массивы которые позволяют получить доступ к файлам. Пример файлового тега:
<input id="fileItem" type="file">
Этот код извлекает первый File
object из списка:
var file = document.getElementById('fileItem').files[0];
File item(index); |
Атрибут | Тип | Описание |
length |
integer |
Количество файлов в списке, свойство только для чтения (read-only) |
Возвращает File
объект по его индексу в списке.
File item( index );
index
Тип File, соотвествует запрашиваемому файлу.
Этот пример выполняет перебор всех файлов, выбранных пользователем, используя элемент Input:
// fileInput это HTML input элемент: <input type="file" id="myfileinput" multiple> var fileInput = document.getElementById("myfileinput"); // files это FileList объект (похож на NodeList) var files = fileInput.files; var file; // обходит файлы используя цикл for (var i = 0; i < files.length; i++) { // получаем сам файл file = files.item(i); // или можно так file = files[i]; alert(file.name); }
Здесь пример посложнее.
<!DOCTYPE HTML> <html> <head> </head> <body> <!--атрибут multiple позволяет выбрать сразу несколько файлов--> <input id="myfiles" multiple type="file"> </body> <script> var pullfiles=function(){ // выбираем файловые инпуты на странице var fileInput = document.querySelector("#myfiles"); var files = fileInput.files; // кешируем files.length var fl=files.length; var i=0; while ( i < fl) { // локализуем файловую переменную в цикле var file = files[i]; alert(file.name); i++; } } // привязываем событие изменения input document.querySelector("#myfiles").onchange=pullfiles; //a.t </script> </html>