2012-02-20 8 views
0

Est-ce que quelqu'un connaît un exemple de travail pour recevoir plusieurs fichiers, les stocker dans un dossier et les noms dans une table mysql? Certains jours déjà sans aucune chance, quelque chose manque toujours, et avant de poser ces questions, peut-être que je peux trouver le bon!Zend_Form_Element_File téléchargement de fichiers multiples et mysql

peut-être? je suis d'apprentissage utilisant zend 1.11

grâce pablo

EDIT: i ajouter le code pour la clarté: sous la forme:

$element = new Zend_Form_Element_File('images'); 
$element->setLabel('Upload bis 3 Bilder (máx. 200kb each):') 
       ->setMultiFile(3) 
       ->setValueDisabled(true) 
       ->addValidator(new Zend_Validate_File_Size('2MB')) 
       ->addValidator('Count', false, array('min'=>0,'max' => 3)); 

dans le contrôleur:

$adapter = $form->images->getTransferAdapter(); 
//create directory where files would be hold 
if (!file_exists(UPLOADDIR)) 
mkdir(UPLOADDIR, 0777, 1); 

$i=0; 
$images=""; 
//loop uploaded files 

foreach ($adapter->getFileInfo() as $info) 
{  
//rename file how you like and move it to given destination 
$fileName = time().$i.'.'.$this->getExtension($info['name']); 
$adapter->addFilter('Rename', array('target'=>UPLOADDIR.$fileName, 'overwrite'=>true)); 

//if something goes wrong print errors in screen 
if (!$adapter->receive($info['name'])) 
{ 
die(print_r($adapter->getMessages(),1)); 
}else{ 
if ($info['name']!==""){ 
$images .= $fileName.","; 
} 
} 
$i++; 
}     
+0

Commentaires de la réponse de Mona: Jetez un oeil aux exemples suivants http://www.pc-freak.net/blog/tag/uploading -multiple-files-from-a-form-avec-zend-framework-zf-stockage-upload-zf-files-with-unique-name/et http://ahsangill.wordpress.com/2009/02/17/ zend-framework-file-upload-en utilisant-zend_form_element_file/et http://irmantasplius.blogspot.com/2009/08/zendform-multiple-file-uploads.html – Gordon

Répondre

1

Je pense que vous devriez utiliser setFilters() au lieu de addFilter sur l'adaptateur, car le code actuel ajoutera un nouveau filtre Renommer à chaque itération de la boucle foreach.

Essayez de remplacer:

$adapter->addFilter('Rename', array('target'=>UPLOADDIR.$fileName, 'overwrite'=>true)); 

avec

$adapter->setFilters(array(new Zend_Filter_File_Rename(array('target'=>UPLOADDIR.$fileName, 'overwrite'=>true)))); 
Questions connexes