Как загружать изображения в multiple режиме через FormData()?

Есть инпут с параметрами:
<label class="label">
   <input id="upload-img" type="file" multiple="multiple" />Загрузить
</label>


Хочу передать изображения с помощью JQuery Ajax
Но перед этим получаю изображения и кладу их в FormData()

$('#upload-img').on('change',function(e){
   e.preventDefault();
   var imgArray = $(this).prop('files'),
   filesCount = imgArray.length;
   if (filesCount <= 5) {
      var sendData = new FormData(); // Создаем форму с данными
      sendData.append('image', imgArray); // Добавляем в форму файл изображения
      console.log(sendData);
      console.log(imgArray);
      console.log(filesCount);
      console.log(sendData.get('image'));
   }
});


Получаю ответы в консоли:
FileList [ File, File, File ]
3
[object FileList]

[object FileList] - просто строка

Гуру, поделитесь идеями, как корректно передать в Ajax массив изображений, чтобы он попал в PHP?
Вот в кратце мой код отправки:
$.ajax({
   type: 'POST',
   url: 'upload_image.php',
   data: sendData,
   cache: false,
   contentType: false,
   processData: false,
   dataType: 'JSON',
   success: function(data){
      console.log(data);
   }
});


На стороне PHP пытаюсь посчитать количество файлов в массиве
count($_FILES['IMGA'])
Но получаю 0 т.е. массив не передается (Тут я возможно перепутал понятия массив и объект)

Может быть нужно объект imgArray преобразовать во что-то другое?
  • Вопрос задан
  • 805 просмотров
Решения вопроса 1
Narakot
@Narakot Автор вопроса
Получилось через нативный JavaScript
var sendData = new FormData(),
ins = document.getElementById("upload-img").files.length;
for (var x = 0; x < ins; x++) {
   sendData.append("files[]", document.getElementById("upload-img").files[x]);
}

Источник: www.roytuts.com/ajax-multiple-files-upload-using-p...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ShadowOfCasper
@ShadowOfCasper
Middle User Interface Web Developer
Вот, глянь как у меня сделано. Для multiple тоже должно работать:
https://github.com/WebKieth/Black-UI/blob/master/s...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы