3

私は Symfony 2.1 に取り組んでおり、デフォルトの fosUserBundle User エンティティに画像を追加しています。私のエンティティの上に私はこれを持っています:

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 にインストールすることが重要です。guessExtion()それがないと、バリデーターはからのメソッドを使用するため、ファイルを検証できませんuploadedFile

これで問題が解決しました。ただし、共有ホスティングでは、php_fileinfo を有効にできない可能性があるため、問題が発生する可能性があります。

于 2012-10-17T12:38:50.603 に答える