Symfony 请求对象 - 文件 - 上传错误常量

Symfony Request Object - FILES - Upload error constants

我一直在关注 Fabien Potencier 的一篇关于从 Symfony 组件构建您自己的框架的文章。

$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 如何处理这个问题?

Request 对象的目的是保存请求数据,而不是验证它。如果您想进行验证,请创建一个对象(如果您将请求数据保存在某处,则为一个实体;如果没有,则只是一个简单的 php 对象),将 $_FILES 的内容设置为该对象,例如:

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

并使用validator component to validate the file using the File constraint。 如果有附件发送,$request->files->get('fileFormInputName') 将是 instanceof Symfony\Component\HttpFoundation\File\UploadedFile

我希望这能回答你的问题。