Объект запроса Symfony - ФАЙЛЫ - Константы ошибок загрузки

Я следил за статьей Фабьена Потенсье (Fabien Potencier) о создании собственного фреймворка из Symfony Components.

$request = \Symfony\Component\HttpFoundation\Request::createFromGlobals();

Я думал, что объект Request может быть использован в качестве замены для суперглобалистов PHP. Однако, если я загружаю файл, и он сталкивается с ошибками (т. Е. Загрузка пустого файла), он не содержит никакой информации об ошибке?

Вот вывод массива $_FILES, он содержит код ошибки

Array
(
    [inputIndex] => Array
        (
            [name] => Array
                (
                    [3] => 
                )

            [type] => Array
                (
                    [3] => 
                )

            [tmp_name] => Array
                (
                    [3] => 
                )

            [error] => Array
                (
                    [3] => 4
                )

            [size] => Array
                (
                    [3] => 0
                )

        )

)

Вот вывод объекта $request

Array
(
    [inputIndex] => Array
        (
            [3] => 
        )

)

В случае $_FILES объект запроса теряет много информации. Содержится ли он где-нибудь еще в объекте запроса? Как Symfony справляется с этим?

1 ответ

Решение

Цель объекта запроса - хранить данные запроса, а не проверять их. Если вы хотите выполнить проверку, создайте объект (Entity, если вы сохраняете данные запроса где-либо, или просто простой объект php, если нет), установите содержимое $_FILES к объекту, как:

$model->setFile($request->files->get('fileFormInputName'));

и используйте компонент validator для проверки файла с использованием ограничения File. Если вложение отправлено, $request->files->get('fileFormInputName') будет instanceof Symfony\Component\HttpFoundation\File\UploadedFile,

Я надеюсь, что это отвечает на ваш вопрос.

Другие вопросы по тегам