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


Symfony Request Object - FILES - Upload error constants

我一直在关注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如何处理这个问题?

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

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

并使用验证程序组件通过 File 约束来验证文件。如果发送了附件,则将instanceof Symfony'Component'HttpFoundation'File'UploadedFile $request->files->get('fileFormInputName')

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