Laravel 5.4 $ request-> file () возвращает ноль - PullRequest
1 голос
/ 07 апреля 2020

Я пытаюсь сохранить несколько файлов, но метод 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 Запрос, который моя проблема, это и , мое начало решения таково: .

Я использую решение в качестве промежуточного программного обеспечения, а результат для запроса это то, что я поставил в вопросе.

1 Ответ

0 голосов
/ 07 апреля 2020

Я думаю, вам просто нужно сделать

$request->arquivos

вместо

$request->file('arquivos')

И, вероятно, вы могли бы также сделать

$request->input('arquivos')
...