2012-10-15 6 views
3

Je travaille sur Symfony 2.1 où j'ajoute des images à l'entité utilisateur fosUserBundle par défaut. En plus de mon entité j'ai ceci:Le validateur Symfony 2.1 ne voit pas le type mime

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 

Suivant le champ concernant:

/** 
* @ORM\Column(nullable=true) 
* @Assert\File(maxSize="5M", mimeTypes={"image/gif", "image/jpeg", "image/png"}) 
*/ 
protected $promo; 

L'erreur que je reçois est The mime type of the file is invalid (""). Allowed mime types are "image/gif", "image/jpeg", "image/png"..

La chose étrange est, quand je var_dump $this->promo->getClientMimeType() je reçois parfaitement image/jpeg ... Donc, pour une raison quelconque, le validateur est à la recherche dans le mauvais endroit?

Est-ce que quelqu'un a une idée de ce qui pourrait causer cela?

+0

Je suppose que, pour une raison quelconque, vous n'obtenez pas le fichier du tout. Quand vidangez-vous? Avant ou après le formulaire de liaison? – DonCallisto

Répondre

3

Comme il s'avère qu'il est crucial d'avoir l'extension php_fileinfo installé dans votre php. Sans cela, le validateur peut valider vos fichiers car il utilise la méthode guessExtion() de uploadedFile.

Cela a résolu mon problème. Cependant, sur un hébergement partagé, cela peut causer des problèmes car vous ne pourrez peut-être pas activer php_fileinfo.

Questions connexes