Я работаю над формой Symfony с загрузкой файлов. Однако, когда я загружаю меньший файл, он работает правильно, но с большим файлом, скажем, 8 МБ, он выдает следующую ошибку при использовании getClientOriginalName () или guessClientExtension ().
Ошибка: вызов функции-члена getClientOriginalName () со значением NULL
Это форма веточки
<form method="post" role="form" {{form_enctype(form)}}>
{{form_widget(form.file)}}
{{form_errors(form.file) }}
{{form_rest(form)}}
<button class="btn btn-primary" type="submit">Upload</button>
</form>
IndexController.php
public function indexAction() {
$form = $this->createFormBuilder()
->add('file', 'file')
->getForm();
$request = $this->getRequest();
if ($request->getMethod() == 'POST') {
$form->bind($request);
$upload_file = $form['file']->getData();
$ext = strtolower(pathinfo($upload_file->getClientOriginalName(), PATHINFO_EXTENSION));
if (!in_array($ext, array("csv", "xlsx", "xls"))) {
$form->get("file")->addError(new FormError("Invalid file format"));
}
if ($form->isValid()) {
if ($upload_file) {
$upload_file_name = $this->getUser()->getId() . "_" . date("ymdHis") . "." . $ext;
$upload_file->move("uploads", $upload_file_name);
}
}
}
return $this->render('AppBundle:Index:index.html.twig', array('form' => $form->createView()));
}
Я установил upload_max_size в php.ini на 64 МБ и увеличил также max_execution_time. Что я здесь не так делаю? Он работает с небольшими файлами, но не с файлом 8 МБ. Пожалуйста помоги.
Вы должны изменить следующим образом:
memory_limit = ?M
upload_max_filesize = ?M
post_max_size = ?M
Если upload_max_filesize больше, чем post_max_size, вы должны увеличить post_max_size, чтобы он был больше, чем upload_max_size.
Если значение post_max_size больше, чем memory_limit, вы должны увеличить memory_limit, чтобы оно было больше, чем post_max_size.
Других решений пока нет …