【问题标题】:Symfony validation on multiple file upload多个文件上传的 Symfony 验证
【发布时间】:2018-02-16 01:35:25
【问题描述】:

我有一个包含 FileType 字段的表单。我已将multiple 选项设置为true,以便用户可以同时上传多个文件。

$builder->add('myFile', FileType::class, [
                'label' => 'upload file',
                'multiple' => true,
])

这里是连接到这个表单的Entity中的对应属性:

     /**
     * @Assert\NotBlank()
     * @Assert\File(mimeTypes = {"application/pdf", "application/x-pdf", "image/jpeg", "image/png"})
     * @ORM\Column(type="array")
     */
     private $myFile;

当我提交表单时出现错误:

UnexpectedTypeException in FileValidator.php line 168:
Expected argument of type "string", "array" given

我在 File assert 前面添加了花括号,所以它看起来像这样:

* @Assert\File{}(mimeTypes = {"application/pdf", "application/x-pdf", "image/jpeg", "image/png"})

现在提交表单时它不会抱怨。但也没有检查文件类型验证。

知道如何使文件类型适用于多个选定的文件吗?

【问题讨论】:

    标签: php forms symfony file-upload symfony-validator


    【解决方案1】:

    由于您正在验证 File 的数组,因此您需要应用 All 验证器,它将对数组的每个元素应用内部验证器。

    试试类似的东西:

    /**
     * @Assert\All({
     *     @Assert\NotBlank()
     *     @Assert\File(mimeTypes = {"application/pdf", "application/x-pdf", "image/jpeg", "image/png"})
     * })
     * @ORM\Column(type="array")
     */
     private $myFile;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      相关资源
      最近更新 更多