Получить список файлов из ввода - PullRequest
0 голосов
/ 16 апреля 2019

У меня есть этот ввод <input type="file" id="file" name="file" accept="image/*" multiple>, это позволяет пользователю выбрать несколько изображений, и мне нужно передать все их на мой FormData, поэтому я делаю это:

var formdata = new FormData();
var files = $('#file')[0].files[0];
formdata.append('file',files);

Но это только первое изображение из списка. Как я могу взять все изображения и сохранить их все в var files?

Заранее спасибо

РЕДАКТИРОВАТЬ: Используемый мной бэкэнд - django/python, и если я использую этот способ в своем бэкэнде, обнаруживаю только одно изображение из списка, например [<InMemoryUploadedFile: img.png (image/png)>], и с помощью просто var files = $('#file')[0].files; ничего не показываю.

Ответы [ 2 ]

1 голос
/ 16 апреля 2019

Существует много проблем:

  1. Невозможно повторно объявить одну и ту же переменную, если вы хотите сохранить ее предыдущие значения
  2. Вам необходимо изменить индекс, чтобы он не сохранялсяв том же месте
  3. $ ("# file") - не должен быть массивом, это объект, поэтому я удивлен, что не выдает ошибку

Допустим, вашкод является законным.Вы можете сделать это:

var files=[];
var length = $("#file").length;
for (i = 0; i < length; i++) {
   files[i] = $('#file')[i];
}
formdata.append('file',files);
0 голосов
/ 16 апреля 2019

Это было мое решение

var formdata = new FormData();
var files=[];
var count = document.getElementById('file').files.length;
for (i = 0; i < cont; i++) {
    files[i] = document.getElementById('file').files[i];
    formdata.append('file',files[i]);
}

Использование JQuery для длины приносит мне только 1 элемент и дает мне больше проблем, поэтому Я использую puere JavaScript для этой части и отлично работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...