我已经按照文档中的说明使用Doctrine处理文件上传。
图片上传工作正常但当我上传其他文件类型时,它只允许文件上传即使我在$file属性上正确设置了注释,像这样
/**
* @AssertFile(
* 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;
我刚刚发现问题来自Product实体。我正在向产品表单添加多个图像,我忘记将Valid断言放在产品实体上的$images属性上,如下所示:
/**
* @ORMManyToMany(targetEntity="PSStockBundleEntityImage", cascade={"persist"})
* @AssertValid()
*/
private $images;
我在我的博客上写了一篇关于这个的文章https://web.archive.org/web/20141004165731/http://www.ennazk.com:80/validate-subforms-in-symfony2/#.Wdt9mBNSwnU
谢谢。
{"image/jpg", "image/jpeg", "image/gif", "image/png"},
是否合法?因为对我来说,这看起来不像一个有效的json (json中的对象由键=>值对组成)。如果json解码失败,那么整个断言可能没有得到应用。我对学说了解不多,所以我可能是错的。