IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Initialiser le mimeTypes avant Upload dans une Entity avec annotation [2.x]


Sujet :

Symfony PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 63
    Par défaut Initialiser le mimeTypes avant Upload dans une Entity avec annotation
    Bonjour
    Comment faire pour qu'une entité qui sera une photo n'accepte que des extensions jpg,png...

    La seule chose que j'ai pu trouver ne marche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
         /**
         * @Assert\File(maxSize="6000000",
         * mimeTypes = {"image/jpeg", "image/png", "image/gif", "image/jpg"},
         * mimeTypesMessage = "Ce fichier doit être une image")
         */
        public $file;
    L'un de vous a t'il déjà fait cela
    Merci

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    quelle est le l’erreur en retour ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 63
    Par défaut
    En fait il n'y a pas d'erreur, mais si je lève mimetype et mimetypemessage l'upload se fait, si je les laisse l'upload ne se fait plus.

    Peut-être mon controleur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
            $photo = new Photo();
    	$formBuild = $this->createFormBuilder($photo)
    			->add('file', 'file');
     
            $form = $formBuild->getForm();
     
    		// On récupère la requête.
    		$request = $this->get('request');
     
    		if ($this->getRequest()->getMethod() === 'POST') {
    			$form->bindRequest($this->getRequest());
    			if ($form->isValid()) {
    				$photo->upload();
    			}
    		}

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    si t'affiches pas les erreurs tu risques pas des les voir,
    fait un coup de Flash Message
    http://symfony.com/doc/current/book/...flash-messages

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 63
    Par défaut
    Merci pour tes réponses.
    Même avec flash je n'ai pas de message d'erreur, par contre lorsque je lève la ligne : "mimeTypesMessage = "Ce fichier doit être une image", j'ai le message suivant :
    The mime type of the file is invalid (""). Allowed mime types are "image/jpeg", "image/png", "image/gif", "image/jpg"

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    t'as fileinfo ?

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 63
    Par défaut
    Merci beaucoup, c'était bien ça j'ai décoché fileinfo.dll dans le php.ini et maintenant ça marche.
    Par contre la ligne mimeTypesMessage = "Ce fichier doit être une image" ne s'affiche pas, mais bon si le fichier n'a pas la bonne extension il n'est pas uploadé c'est le principal.

    Mais selon vous c'est la bonne façon de faire, ou vaut il mieux faire une vérification supplémentaire en dehors de l'entity, dans le contrôleur par exemple?

  8. #8
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    de tout façon si c'est pour une image if faut utiliser la contrains Image ...
    http://symfony.com/doc/current/refer...nts/Image.html

    tout est traduit en plus

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 63
    Par défaut
    Très bien merci beaucoup.
    Pour la petite histoire le message d'erreur ne s'affichait pas car la page de mon entité n'était pas encodée en UTF8 et mon message d'erreur avait un accent, depuis tout est ok.

  10. #10
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    de toute façon pas besoin de faire de message d'erreur perso, puisqu'il y'a deja tout dans le type Image

  11. #11
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 12
    Par défaut
    Bonsoir, j'ai votre exemple en ajoutant ceci dans mon entité. Je veux que seul les fichiers pdf et excel soient acceptés.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    /**
         *     @Assert\File(
         *     maxSize = "6000000",
         *     mimeTypes = {"application/pdf", application/x-pdf, "application/xls"},
         *     mimeTypesMessage = "Donner un fichier pdf ou  xls valide"
         *    )
         */
        public $file;
    Mais il accepte les fichiers .doc et .txt . De mon coté j'ai suivi le lien http://symfony.com/doc/current/refer...ints/File.html mais ça ne marche.

  12. #12
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    t'as bien fileinfo ?

  13. #13
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 12
    Par défaut
    Merci c'est bon y avait pas les codes sur "application/x-pdf"

  14. #14
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par bakh yaye Voir le message
    Merci c'est bon y avait pas les codes sur "application/x-pdf"
    le PDF c'est application/pdf pas x-pdf

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Formater texte avant insertion dans une BDD
    Par cflo91 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 05/04/2008, 09h12
  2. génération de requete dynamique dans une entitie
    Par osman.amine dans le forum Struts 1
    Réponses: 3
    Dernier message: 12/06/2007, 13h52
  3. Réponses: 2
    Dernier message: 11/06/2007, 16h12
  4. Réponses: 8
    Dernier message: 26/04/2007, 10h31
  5. Réponses: 1
    Dernier message: 11/09/2006, 10h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo