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 :

formulaire upload pas de fichier [2.x]


Sujet :

Symfony PHP

  1. #1
    Membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 71
    Points : 45
    Points
    45
    Par défaut formulaire upload pas de fichier
    bonjour,

    Je travailles actuellement sur Symfony2 et j'ai mon formulaire d'upload de fichier.

    Ma page twig :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <h1>Téléchargement*d'un*fichier</h1>
    <form*action="{{*path('NonGreviste')}}"*method="post"*{{*form_enctype(form)*}}>
    ****{{*form_widget(form)*}}
    ****<button*type="submit"*data-theme="a">Enregistrer</button>
    </form>
    Le controller :
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    // creation du formulaire avec le formuulaire type + les données concerant l'entité passé en parametre
    $form = $this->createFormBuilder()
        ->add('files','file', array(
            "label"    => "Fichier CSV",
            "required" => FALSE,
            ))
        ->getForm();
     
    $request = $this->get('request');
     
    // Si le formulaire contient des elements de reponse
    if($request->getMethod() == "POST"){
        $form->bindRequest($request);
     
        // Si le formulaire est valide
        if($form->isValid()){
    	// Recuperation du fichier
    	$files = $form['files']; 
    	// Deplacement du fichier dans le dossier TempMod
    	$files->getData()->move('TempMod/', 'Fic.csv');
        }
    }
    return $this->render('xBundle:psc:toto.html.twig', array(
            'form' => $form->createView(),
    	));
    Le problème est que lorsque on clique sur le bouton Enregistrer sans avoir sélectionné un fichier cela plante.
    Comment puis-je vérifier qu'un fichier a bien été uploadé avant de faire le move() ??

    Merci d'avance

  2. #2
    Expert éminent sénior

    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
    Points : 10 726
    Points
    10 726
    Par défaut
    il devrai pas être validé si le champs file est un champs requis

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 394
    Points : 347
    Points
    347
    Par défaut
    Ajoutes ceci dans ton formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public function getDefaultOptions(array $options)
        {
        return array(
            'validation_groups' => array('registration')
        );

  4. #4
    Membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 71
    Points : 45
    Points
    45
    Par défaut
    Merci de me répondre

    Je n'ai pas créer de fichier propre à ce formulaire

    Il est uniquement déclaré par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $form = $this->createFormBuilder()
        ->add('files','file', array(
            "label"    => "Fichier CSV",
            "required" => FALSE,
            ))
        ->getForm();
    comment faut-il que je précise qu'il est requis ?

  5. #5
    Expert éminent sénior

    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
    Points : 10 726
    Points
    10 726
    Par défaut
    ...



  6. #6
    Membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 71
    Points : 45
    Points
    45
    Par défaut
    Je suis bete

    Il suffit de mettre la valeur à TRUE

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $form = $this->createFormBuilder()
        ->add('files','file', array(
            "label"    => "Fichier CSV",
            "required" => FALSE,
            ))
        ->getForm();
    cela marche nickel

    Merci beaucoup

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

Discussions similaires

  1. Plupload n'upload pas mes fichiers !
    Par julien731 dans le forum Langage
    Réponses: 4
    Dernier message: 04/12/2010, 17h11
  2. Réponses: 6
    Dernier message: 01/04/2007, 19h39
  3. [Upload] Problème avec l'upload : Pas de fichier tmp !
    Par commedab dans le forum Langage
    Réponses: 4
    Dernier message: 20/03/2007, 14h38
  4. [Upload] upload d'un fichier sans formulaire HTML
    Par cortex024 dans le forum Langage
    Réponses: 2
    Dernier message: 07/02/2007, 16h49
  5. formulaire + upload de fichier
    Par xave dans le forum ASP
    Réponses: 9
    Dernier message: 14/06/2006, 18h33

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