上传的文件,文件类型过滤器



我创建了两个实体用于上传图片,一个用于我的文章(仅供我使用(,另一个用于我的用户的个人资料图片。我想设置大小限制和文件类型过滤器,两个实体都不同。

这是我的文件代码

    /**
     * @AssertFile(
     *     maxSize = "206k",
     *     maxSizeMessage = "Le fichier de doit pas faire plus que ..",
     *     mimeTypes = {"image/png", "image/jpg"},
     *     mimeTypesMessage = "Seul les formats ..."
     * )
     */
    private $file;
    public function getFile() {
        return $this->file;
    }
    public function setFile(UploadedFile $file): void {
        $this->file = $file;
    }

仍然可以上传任何类型的文件,我唯一的大小限制是来自我的 php.ini

文件上传大小和 mime 类型检查适用于我使用 Symfony 4.3.1 和 Doctrine 和 MySQL。 两个更改是指定@ORMColumn类型并将image/jpg更改为image/jpeg

use DoctrineORMMapping as ORM;
use SymfonyComponentValidatorConstraints as Assert;
...
/**
 * @ORMColumn(type="string", length=255, nullable=true)
 *
 * @AssertFile(
 *     maxSize = "206k",
 *     maxSizeMessage = "Le fichier de doit pas faire plus que ..",
 *     mimeTypes = {"image/png", "image/jpeg"},
 *     mimeTypesMessage = "Seul les formats ..."
 * )
 */
private $file;

你也试过php bin/console cache:clear吗并尝试php bin/console make:migration检查实体和数据库是否同步?