#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. Конечно, я пропустил это в коде вопроса