我正在研究Symfony 2.1,我将图像添加到默认的fosUserBundle用户实体。 在我的实体之上我有这个:
use FOS\UserBundle\Entity\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Component\HttpFoundation\File\UploadedFile;
/**
* @ORM\Entity
* @ORM\HasLifecycleCallbacks
* @ORM\Table(name="users")
*/
class User extends BaseUser
接下来的相关领域:
/**
* @ORM\Column(nullable=true)
* @Assert\File(maxSize="5M", mimeTypes={"image/gif", "image/jpeg", "image/png"})
*/
protected $promo;
我得到的错误是The mime type of the file is invalid (""). Allowed mime types are "image/gif", "image/jpeg", "image/png".
。
奇怪的是,当我var_dump $this->promo->getClientMimeType()
时,我整齐地得到image/jpeg
......
所以出于某种原因,验证器正在寻找错误的位置?
有人知道可能导致这种情况的原因吗?
答案 0 :(得分:4)
事实证明,在你的php中安装php_fileinfo
扩展是至关重要的。
没有它,验证器可以在使用guessExtion()
中的uploadedFile
方法时验证您的文件。
这解决了我的问题。但是,在共享主机上,这可能会导致问题,因为您可能无法启用php_fileinfo。