Я пытаюсь сохранить несколько файлов, но метод Request file () возвращает ноль. Помогите мне, пожалуйста
Мой интерфейс:
<input type="file" name="arquivos" multiple />
Внешний JS:
...
var form = document.forms['frmDados'];
...
В одной функции:
...
var formData = new FormData();
var ins = form.elements['arquivos'].files.length;
for (var x = 0; x < ins; x++) {
formData.append('arquivos[]', form.elements['arquivos'].files[x]);
}
// https://stackoverflow.com/questions/35192841/fetch-post-with-multipart-form-data
await fetch(window.location.href, {
method: method, // POST or PUT
body: formData,
headers: {
'X-CSRF-Token': form.elements['_token'].value
},
}).then((response) => {
...
Мой бэкэнд:
$arquivos = $request->file('arquivos'); // Illuminate\Http\Request
Log::info($arquivos);
Log::info($request->all());
My laravel .log: (я загрузил 2 файла, но в методе all () показывает только 1)
[2020-04-07 14:40:11] local.INFO:
[2020-04-07 14:40:11] local.INFO: array (
'otheratribute' => '3',
'otheratribute2' => '1',
'otheratribute3' => '2020-03-03',
'otheratribute4' => '03:00',
'otheratribute5' => 'Tetandos',
'otheratribute6' => '1',
'otheratribute7' => '2020-04-01',
'arquivos[]' =>
Illuminate\Http\UploadedFile::__set_state(array(
'test' => false,
'originalName' => 'jgcjkpmefepjgcpg.png',
'mimeType' => 'image/png',
'size' => 392328,
'error' => 0,
'hashName' => NULL,
)),
)
Что я намерен сделать :
try {
$infracao->upload($arquivos, true);
} catch (\Exception $e) {
return response($e->getMessage(), 503);
}
ОБНОВЛЕНИЕ 07/04/2020 18:21 GMT-3
Я забыл указать, это решение работает для запроса POST, но не для PUT Запрос, который моя проблема, это и , мое начало решения таково: .
Я использую решение в качестве промежуточного программного обеспечения, а результат для запроса это то, что я поставил в вопросе.