Php 断言文件未验证

Php 断言文件未验证,php,file,symfony,mime-types,assert,Php,File,Symfony,Mime Types,Assert,我已经按照文档中的说明使用条令处理文件上传 图像上载工作正常,但当我上载其他文件类型时,它只允许文件上载,即使我已正确设置$file属性的注释,如下所示: /** * @Assert\File( * maxSizeMessage = "L'image ne doit pas dépasser 5Mb.", * maxSize = "5000k", * mimeTypes = {"image/jpg", "image/jpeg", "image/gif", "ima

我已经按照文档中的说明使用条令处理文件上传

图像上载工作正常,但当我上载其他文件类型时,它只允许文件上载,即使我已正确设置$file属性的注释,如下所示:

/**
 * @Assert\File(
 *     maxSizeMessage = "L'image ne doit pas dépasser 5Mb.",
 *     maxSize = "5000k",
 *     mimeTypes = {"image/jpg", "image/jpeg", "image/gif", "image/png"},
 *     mimeTypesMessage = "Les images doivent être au format JPG, GIF ou PNG."
 * )
 */
public $file;

{“image/jpg”、“image/jpeg”、“image/gif”、“image/png”},
是有效的json吗?因为对我来说,这看起来不像是有效的json(json中的对象由key=>value对组成)。如果json解码失败,则可能无法应用整个断言。我不知道;但是我不太了解原则,所以我可能错了。

是不是
{“image/jpg”,“image/jpeg”,“image/gif”,“image/png”},
有效的json?因为对我来说,这看起来不像是有效的json(json中的对象由key=>value对组成)。如果json解码失败,则可能无法应用整个断言。我不知道;虽然我对条令不太了解,但我可能错了。

我刚刚发现问题来自产品实体。我将多个图像添加到产品表单中,但我忘记将有效断言放在产品实体的$images属性中,如下所示:

/**
 * @ORM\ManyToMany(targetEntity="PS\StockBundle\Entity\Image", cascade={"persist"})
 * @Assert\Valid()
 */
private $images;
我在我的博客上写了一篇关于这个的文章


谢谢。

我刚刚发现问题来自产品实体。我将多个图像添加到产品表单中,但我忘记将有效断言放在产品实体的$images属性中,如下所示:

/**
 * @ORM\ManyToMany(targetEntity="PS\StockBundle\Entity\Image", cascade={"persist"})
 * @Assert\Valid()
 */
private $images;
我在我的博客上写了一篇关于这个的文章


谢谢。

是的,但它不会触发任何错误。然后您有几个选项1.)一切正常2.)您不运行断言3.)这些都运行了,但您不处理结果。从您迄今为止展示的代码和您迄今为止给出的描述来看,一切都是可能的。因此,这首先需要进一步的故障排除。如何运行/处理断言?这取决于手册中的概述。通常通过实体验证。还有一个可能的问题是你在这里有一个公共财产。谁建议你把它公之于众?这通常不在手册中(您已经编写了手册,您也遵循了手册)。还要检查MimeTypeGuesser是否实际工作。看起来你已经发现它不是。也许这就是你的问题?是的,但它不会触发任何错误。然后你有几个选项1。)一切正常2。)你不运行断言3。)这些都运行了,但你不处理结果。从您迄今为止展示的代码和您迄今为止给出的描述来看,一切都是可能的。因此,这首先需要进一步的故障排除。如何运行/处理断言?这取决于手册中的概述。通常通过实体验证。还有一个可能的问题是你在这里有一个公共财产。谁建议你把它公之于众?这通常不在手册中(您已经编写了手册,您也遵循了手册)。还要检查MimeTypeGuesser是否实际工作。看起来你已经发现它不是。也许这就是你的问题?请查看“文件约束”页面上的。它是
{'string','string'}
。请查看文件约束页面上的。它是
{'string','string'}
。这篇文章没有更多内容了吗?你是怎么修好的?这篇文章没有更多内容了?你是怎么修好的?