PHP Laravel массив нулевых значений после передачи методу

#php #laravel #dropzone.js

#php #laravel #dropzone.js

Вопрос:

У меня есть DocumentsController, и он хранит файлы.

Когда я загружаю несколько файлов, они загружаются в метод хранения, и после этого я вызываю метод, который управляет путем, именем файла.

Поэтому, когда я передаю массив данных в качестве параметра этому методу (manageFileName), этот массив каким-то образом изменяется, его значения равны нулю.

 class DocumentsController
{
    public function store(Request $request)
    {
        $file = $request->file('file');

        $data = [
            "extension" => $file->getClientOriginalExtension(),
            "name"      => pathinfo($file->getClientOriginalName())['filename'],
            "folder"    => $request->folder,
            "visible"   => "private",
            "mime_type" => $file->getClientMimeType()
       ];

        Logger($data);
        /*
           $data = [
            "extension" => 'pdf',
            "name"      => 'pdf sample',
            "folder"    => 'folder',
            "visible"   => "private",
            "mime_type" => 'application/pdf'
           ];
        */

        $this->manageFileName($data);

        // Upload file to S3...
    }

    public function manageFileName($data)
    {
        Logger($data);

        /*
           $data = [
            "extension" => null,  // why?
            "name"      => null,  // why?
            "folder"    => 'folder',
            "visible"   => "private",
            "mime_type" => 'application/pdf'
           ];
        */
    }
}
  

Проблема в том, что такое поведение происходит не со всеми загруженными файлами, из 20 только 2 или 3 файла загружены неправильно.

Я не могу понять, что происходит. PS Я использую Dropzone.js чтобы загрузить файлы в Laravel, я загружаю 20 PDF-файлов одновременно (только один и тот же скопированный файл). Laravel 5.8, Php 7.4 Я проверил конфигурацию php.ini:

  • max_file_uploads = 30,
  • post_max_size = 50M,
  • post_max_size = 50M,
  • max_execution_time = 120

Комментарии:

1. Сначала создайте объект запроса, подобный этому public function store(Request $request) , а затем попробуйте.

2. Конечно, я пропустил это в коде вопроса