РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
675 of 1361 menu

Метод getError

Метод getError класса UploadedFile возвращает целое число - код ошибки, которая возникла при загрузке файла через HTML-форму. Если загрузка прошла успешно, метод вернёт UPLOAD_ERR_OK, что равно нулю. Параметров метод не принимает.

Коды ошибок соответствуют константам PHP: UPLOAD_ERR_OK (0) - ошибок нет, UPLOAD_ERR_INI_SIZE (1) - файл превышает директиву upload_max_filesize, UPLOAD_ERR_FORM_SIZE (2) - файл превышает директиву MAX_FILE_SIZE формы, UPLOAD_ERR_PARTIAL (3) - файл загружен частично, UPLOAD_ERR_NO_FILE (4) - файл не был загружен, UPLOAD_ERR_NO_TMP_DIR (6) - нет временной папки, UPLOAD_ERR_CANT_WRITE (7) - не удалось записать файл на диск, UPLOAD_ERR_EXTENSION (8) - загрузка остановлена расширением PHP.

Синтаксис

public function getError(): int

Пример

Давайте получим код ошибки загруженного файла в контроллере:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class UploadController extends AbstractController { #[Route('/upload', name: 'upload_file')] public function upload(Request $request): Response { $file = $request->files->get('document'); $error = $file->getError(); return new Response((string) $error); } } ?>

Результат выполнения кода при успешной загрузке:

"0"

Пример

Давайте проверим, была ли ошибка при загрузке, и выведем сообщение:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class UploadController extends AbstractController { #[Route('/upload', name: 'upload_file')] public function upload(Request $request): Response { $file = $request->files->get('document'); if ($file->getError() !== UPLOAD_ERR_OK) { return new Response('upload failed'); } return new Response('upload success'); } } ?>

Результат выполнения кода при отсутствии ошибок:

"upload success"

Пример

Давайте выведем читаемое сообщение об ошибке с помощью метода getErrorMessage:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class UploadController extends AbstractController { #[Route('/upload', name: 'upload_file')] public function upload(Request $request): Response { $file = $request->files->get('document'); if ($file->getError() === UPLOAD_ERR_INI_SIZE) { return new Response('file is too large'); } if ($file->getError() === UPLOAD_ERR_NO_FILE) { return new Response('no file uploaded'); } return new Response('file accepted'); } } ?>

Результат выполнения кода при слишком большом файле:

"file is too large"

Смотрите также

  • класс UploadedFile,
    который представляет загруженный через форму файл
  • метод getErrorMessage,
    который возвращает текст ошибки загрузки
  • метод isValid,
    который проверяет, была ли загрузка успешной
  • метод getClientOriginalName,
    который возвращает исходное имя загруженного файла
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить