Загрузить файл из массива - PullRequest
0 голосов
/ 21 марта 2019

Возможно ли успешно загрузить файлы, которые передаются в виде массива файловых объектов через FormData?

Примерно так:

var files_array = [];
$.each($("input[type='file']")[0].files, function(i, file) {
  files_array.push(file);
});

Теперь, если я отправлю его в FormData:

formData.set('files', files_array);

Неправильно получен бэкэндом Laravel.

1 Ответ

0 голосов
/ 21 марта 2019

Способ сделать это - добавить файлы непосредственно в FormData (на удивление, передача массива не сработала):

let i = 0;
fileList.forEach(function(file) {
  formData.append('image' + i, file);
  i++;
});

, а затем получить к ним доступ таким образом в контроллере Laravel:

for($i = 0; $i < sizeof($_FILES); $i++) {
  if($request->hasFile('image' . $i)) $request->file('image' . $i)->store('photos/');
}
...