Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 07-04-2009 16:52:59

ghamrired
Membre
Date d'inscription: 04-03-2009
Messages: 25

[1.7][zend_Form] upload images

Salut,

je suis entraine mnt de faire ulpoad une image et insérée URL dans ma BD
voici le code de mon formulaire :

Code:

<?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:

Code:

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 :

Code:

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

 

#2 08-04-2009 09:39:43

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: [1.7][zend_Form] upload images

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

 

#3 08-04-2009 14:07:42

ghamrired
Membre
Date d'inscription: 04-03-2009
Messages: 25

Re: [1.7][zend_Form] upload images

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 :!

Code:

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

 

#4 08-04-2009 14:15:47

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: [1.7][zend_Form] upload images

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

 

#5 08-04-2009 17:07:19

ghamrired
Membre
Date d'inscription: 04-03-2009
Messages: 25

Re: [1.7][zend_Form] upload images

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

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages