Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 04-01-2010 09:32:02

ManuB
Membre
Lieu: Auxerre
Date d'inscription: 17-10-2007
Messages: 49

[Zend_Form] - Upload Multifile

Bonjour, et meilleurs à vous tous.

J'essaie désespérément de mettre en place un upload multi fichiers avec zend_form avec renommage des fichiers.

Le but est de faire de préfixer le nom tous les fichiers uploadés avec un ID correspondant à un enregistrement.

Plusieurs fichiers pouvant être rattachés à un enregistrement.

Ca fonctionne avec une méthode.

Deux Zend_Form_Element_File avec ces options dans mon formulaire :

Code:

$file1 = new Zend_Form_Element_File('file1');
$file1->setLabel('Pièce jointe 1 :')
        ->setDestination('files');
$file1->addValidator('Size', false, 102400);
$file1->addValidator('Extension', false, 'jpg,png,gif');
$file1->setValueDisabled(true);
$this->addElement($file1);    
        
        $file2 = new Zend_Form_Element_File('file2');
$file2->setLabel('Pièce jointe 2 :')
        ->setDestination('files');
$file2->addValidator('Size', false, 102400);
$file2->addValidator('Extension', false, 'jpg,png,gif');
$file2->setValueDisabled(true);        
$this->addElement($file2);

et mon controlleur :

Code:

$filename1 = $lastID .'_'. $ticketForm->file1->getValue();
$ticketForm->file1->addFilter('Rename',$filename1,'file1');
$filesModel->addFile($filename1,$lastID);
$ticketForm->file1->receive();
                
$filename2 = $lastID .'_'. $ticketForm->file2->getValue();
$ticketForm->file2->addFilter('Rename',$filename2,'file2');
$filesModel->addFile($filename2,$lastID);
$ticketForm->file2->receive();

Mais je souhaiterai faire la même chose en utilisant un seul élément de formulaire avec les options

Code:

$file->setValueDisabled(true);
$file->setMultiFile(2);

le controlleur :

Code:

$lastID = $ticketModel->addTicket($ticketForm->getValues());                
$adapter = $ticketForm->file->getTransferAdapter();    
$files = $ticketForm->file->getValue();                
foreach($files as $key => $file)
{
   $filename = $lastID . '_' . $file;
   $adapter->addFilter('Rename',$filename,$key);                                                          
}
$adapter->receive();

Mais çà , çà ne marche pas.

D'après ce que j'ai compris on peut ajouter un filtre Rename pour chaque fichier, à priori il ne me garde que le dernier ce qui fait que mon deuxieme fichier uploadé est renommer avec le premier filtre et mon deuxieme fichier est ecrasé par le premier...

Mon probleme se trouve juste à l'utilisation de Zend_Filter_File_Rename, si je les vires j'ai bien mes deux fichiers...

Merci d'avance pour votre aide...

Dernière modification par ManuB (04-01-2010 09:39:25)

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