Effectivement, ce n'est pas le bon validator. Regarde la doc comment ils font. Il faut utiliser le validation sfValidatorFile() qui renvoie un objet qui connaitra ta méthode
-----Message d'origine----- De : [email protected] [mailto:[email protected]] De la part de Yo Envoyé : mercredi 5 janvier 2011 12:14 À : Symfony-fr Objet : [symfony-fr] Re: Upload fichier Le validateur est ici : $this->setValidators(array( 'lienImage' => new sfValidatorString(array('max_length' => 150)) )); $this->widgetSchema->setNameFormat('ajoutImage[%s]'); } Hésite pas à me dire si je l'ai mal fait! ;) On 5 jan, 11:07, Lélio ML <[email protected]> wrote: > Quel est le validateur de ton champ file ? > > -----Message d'origine----- > De : [email protected] [mailto:[email protected]] > De la part de Yo Envoyé : mercredi 5 janvier 2011 10:57 À : Symfony-fr > Objet : [symfony-fr] Upload fichier > > Bonjour j'ai un soucis avec l'upload de fichiers. L'erreur suivante > s'affiche lorsque je clique sur le bouton d'upload: > > Fatal error: Call to a member function getOriginalName() on a non- > object in /.... > > Mon action : > > public function executeFormAjouter (sfWebRequest $request) > { > $this->formAjouter=new AjoutImageForm(); > > if ($request->isMethod('post')) > { > > $this->formAjouter->bind($request->getParameter($this- > > >formAjouter->getName()), $request->getFiles($this->formAjouter- > >getName())); > > if ($this->formAjouter->isValid()) > { > > $file=$this->formAjouter->getValue('lienImage'); > $filename=$file->getOriginalName(); > > $file->save(sfConfig::get('sf_upload_dir').'/'.$filename); > $this->creerXML(); > $this->redirect('bandeau/index'); > } > } > > } > > Mon formulaire (AjoutImageForm) : > > class AjoutImageForm extends sfForm > { > public function setup() > { > $this->setWidgets(array('lienImage' => new > sfWidgetFormInputFile(array('label' => "Lien de l'image")))); > > $this->setValidators(array( > 'lienImage' => new sfValidatorString(array('max_length' > => > 150)) > )); > $this->widgetSchema->setNameFormat('ajoutImage[%s]'); > } > > } > > Mon template : > > <form enctype="multipart/form-data" action="<?php echo > url_for('bandeau/FormAjouter')?>" method=POST> <?php echo > $formAjouter?> <input type="submit" /> </form> > > Pourriez vous m'aider à trouver mon erreur... Après quelques dizaines > d'heures passées dessus je commence à peter un cable... > Merci d'avance > > -- > Vous recevez ce message, car vous êtes abonné au groupe Google Groupes > Symfony-fr. > Pour envoyer un message à ce groupe, adressez un e-mail à > [email protected]. > Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse > [email protected]. > Pour plus d'options, consultez la page de ce groupe > :http://groups.google.com/group/symfony-fr?hl=fr -- Vous recevez ce message, car vous êtes abonné au groupe Google Groupes Symfony-fr. Pour envoyer un message à ce groupe, adressez un e-mail à [email protected]. Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse [email protected]. Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/symfony-fr?hl=fr -- Vous recevez ce message, car vous êtes abonné au groupe Google Groupes Symfony-fr. Pour envoyer un message à ce groupe, adressez un e-mail à [email protected]. Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse [email protected]. Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/symfony-fr?hl=fr
