3

我正在使用 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......所以由于某种原因验证器正在寻找错误的位置?

有谁知道可能导致这种情况的原因?

4

1 回答 1

4

事实证明,php_fileinfo在你的 php.ini 中安装扩展是至关重要的。guessExtion()没有它,验证器可以在使用来自 的方法时验证您的文件uploadedFile

这解决了我的问题。但是,在共享主机上,这可能会导致麻烦,因为您可能无法启用 php_fileinfo。

于 2012-10-17T12:38:50.603 回答