Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Salut,
je suis entraine mnt de faire ulpoad une image et insérée URL dans ma BD
voici le code de mon formulaire :
<?php class FormulaireUpload extends Zend_Form { public function __construct($uploadPath,$options = null) { parent::__construct($options); $this->setName('upload'); $this->setMethod('post'); $this->setAttrib('enctype', 'multipart/form-data'); $id=new Zend_Form_Element_Hidden('id'); $host=new Zend_Form_Element_Hidden('host'); $upfile = new Zend_Form_Element_File('upfile'); $upfile->setLabel('upload picture : ') ->setRequired(true) ->addValidator('NotEmpty') ->addValidator('Extension',false,array('jpg','png','gif','bmp')) ->addValidator('size',false,1048576) ->setDestination($uploadPath); $submit = new Zend_Form_Element_Submit('submit'); $submit->setLabel('Upload'); $this->addElements(array($id, $host,$upfile, $submit)); } }
code de l'action image dans mon controller:
public function pictureAction() { $id = (int)$this->_request->getParam('id',0); $ctr=new Country_CountryDes(); $country=$ctr->fetchRow('CTR_ID='.$id); $lien="/var/www/test/htdocs/images/country/".$country->NAME; $upv="/htdocs/images/country/".$country->NAME; $up=realpath($lien); $this->view->upv=$upv;//le lien à envoyer vers la vue //affichage des images de cet pays $im=new Picture_Picture(); $imgs=$im->fetchAll('PICTURE_ID='.$id); $this->view->imgs=$imgs; //le nom du fichier $tab=explode(" ",$country->NAME); $nom=implode("_",$tab); $nom.="_".$country->NOMBRE_IMAGES; $form = new FormulaireUpload(); $form->getElement('host')->setValue($id); $this->view->form = $form; //tester si le formulaire est posté if ($this->_request->isPost()) { $formData = $this->_request->getPost(); $name=$form->getValue('upfile'); $tab=explode('.',$name); $newtab=array(); $newtab[0]=$nom; $newtab[1]=$tab[sizeof($tab)-1]; $newname=implode(".",$newtab); rename($up."\\".$name, $up."\\".$newname); if ($form->isValid($formData)) { $img=new Picture(); $row=$this->createRow(); $row->PICTURE_ID=$form->getValue('host'); $row->URL=$newname; $row->save(); $this->_redirect('/country/picture/id/'.$id); } else $form->populate($formData); } }
et voici l'erreur qui je trouve :
Notice: Undefined index: filters in /var/www/test/application/lib/Zend/File/Transfer/Adapter/Abstract.php on line 796 Fatal error: Unsupported operand types in /var/www/test/application/lib/Zend/File/Transfer/Adapter/Abstract.php on line 796
SVP si qlq à des suggestion ou des remarques
et Merci d'avance
Dernière modification par ghamrired (07-04-2009 18:01:11)
Hors ligne
Déjà lis mieux la doc de Zend_Form_Element_File qui déplace l'elément tout seul. Pas besoin d'utiliser rename. Y'a une méthode receive() à utiliser apèrs le isValid sur ton form.
Hors ligne
Salut pour le dernière problème c'est un problème dans mes libraires de zend j'ai télécharger une autre version de zend et ça va,
mais pour le moment j'ai rencontrer un autre problème c'est que l'image ne se charge pas
voici l'erreur que je trouve :!
Warning: move_uploaded_file(/var/www/test/htdocs/images/country/alm2.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied in /var/www/test/application/lib/Zend/File/Transfer/Adapter/Http.php on line 102 Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpffr7gN' to '/var/www/test/htdocs/images/country/alm2.jpg' in /var/www/test/application/lib/Zend/File/Transfer/Adapter/Http.php on line 102
SVP si qlq peut me donner un coup de main
et MERCI
Hors ligne
Il faut apprendre à analyser les messages d'erreurs.
failed to open stream: Permission denied
Tu a un problème de droits sur les fichiers. Il faut que apache ait les droits d'écriture sur les fichiers.
Hors ligne
j'ai résolu mon pb
mais de temps en temps en prend des décision très vite, est ma décision était de poste l'erreur que j'ai trouve avant de le traite plusieurs fois, veuillez à m'excuse
et merci pour vous conseil
cordialement
Hors ligne