Я пытаюсь загрузить файл, используя документацию Symfony 4 (https://symfony.com/doc/4.0/controller/upload_file.html) - да, я знаю, что это устаревшая версия, но в настоящее время я не могу ее обновить.
Я сделал все как в документации (за исключением создания новой сущности, потому что мне нужно только загрузить файлы и отправить ссылку на этот файл по электронной почте), файлы загружаются правильно в мой каталог, но выдает HTTP 500 ошибок, а в логах есть что-то вроде этого:
[2020-04-20 15:39:40] request.CRITICAL: Uncaught PHP Исключение Symfony \ Component \ HttpFoundation \ File \ Exception \ FileNotFoundException: «Файл» / tmp / phpr2tM6D «не существует» в [...] / vendor / symfony / http-foundation / File / File. php строка 37 {«исключение»: «[объект ] (Symfony \ Component \ HttpFoundation \ File \ Exception \ FileNotFoundException (код: 0): файл \ "/ tmp / phpr2tM6D \" не существует в [...] / vendor / symfony / http-foundation / File / File . php: 37) "} []
есть идеи?
ок, форма в основном j
{{ form_start(warranty_form) }}
{{ form_end(warranty_form)}}
и фрагменты контроллера
$form = $this->createForm(WarrantyType::class);
$form->handleRequest($request);
if($form->isSubmitted() && $form->isValid()) {
/** @var UploadedFile $documentFile */
$documentFile = $form->get('documentFile')->getData();
if($documentFile) {
$originalDocumentFilename = pathinfo($documentFile->getClientOriginalName(), PATHINFO_FILENAME);
$newDocumentFilename = uniqid().'.'.$documentFile->guessExtension();
try {
$documentFile->move('%kernel.project_dir%/public/uploads/pdf',$newDocumentFilename);
} catch(FileException $e) {
}
$message = (new \Swift_Message('Test email '))
->setFrom('error@example.org')
->setTo('error@example.org')
->setBody("a","text/plain");
}
и форма - это просто стандартная форма с возможностью загрузки файлов PDF
->add('documentFile', FileType::class, ['label' => 'Dokument', 'mapped' => false, 'required' => true, 'constraints' => [new File(['maxSize' => '1024k', 'mimeTypes' => ['application/pdf', 'application/x-pdf'], 'mimeTypesMessage' => 'Załaduj prawidłowy dokument'])]])