Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 08-05-2010 22:35:26

yann05
Membre
Date d'inscription: 26-07-2009
Messages: 13

Zend_Form_Element_File - Modifier le nom du fichier uploadé

Bonjour à tous,

Je viens à vous après moultes et moultes galères et recherches sur Google....

Le problème réside dans l'implémentation d'un formulaire avec un upload de photo.
J'arrive à copier la photo lors de la validation de mon formulaire dans un dossier spécifié avec son nom de base, mais je ne parvient pas à modifier son nom pour le remplacer par un "ID_article".

Cette procédure me parait pourtant assez standard mais très peu documenté (Beaucoup de sujets sans réponses et la doc est un peut juste pour un novice comme moi).

J'ai essayé le filtre "Rename" mais sans succès, cela n'a aucun effet sur le nom de ma photo

Voici mon code qui fonctionne :

//Formulaire d'ajout
     $form = new Form_Article();
     $this->view->form = $form;
            if ($this->getRequest()->isPost()){
                $formData = $this->getRequest()->getPost();
                if ($form->isValid($formData)) {


                    if ($form->getValue('file_article') == ""){
                        $location = "";
                    }else{
                        $location = $form->file_article->getFileName($file = null, $path = false);
                        $form->file_article->receive();
                    }

                   
                    $article = new Model_DbTable_Article();
                    $article->addArticle($sousrubrique->num_sous_rubrique, $num_marque, $titre, $fileName, $description, $prix, $selection);
                    $this->_redirect('/rubrique_'.$sousrubrique->titre.'-'.$sousrubrique->num_sous_rubrique);
                   
                }else {
                    $form->populate($formData);
                }
            }

Je veut juste pouvoir modifier le nom de la photo avant d'ajouter l'article.
Merci pour votre aide!

Hors ligne

 

#2 09-05-2010 09:29:25

lassoya
Membre
Date d'inscription: 26-12-2009
Messages: 87

Re: Zend_Form_Element_File - Modifier le nom du fichier uploadé

moi c'est ce que je cherchais il y a quelques mois, mais je n'ai pas trouvé donc après le téléchargement de mon image j'utilise la fonction rename, mais bon c'est du bricolage

Hors ligne

 

#3 09-05-2010 12:24:59

yann05
Membre
Date d'inscription: 26-07-2009
Messages: 13

Re: Zend_Form_Element_File - Modifier le nom du fichier uploadé

Ok merci, effectivement je m'apprêtais à utiliser la variable "$_FILE" avec la fonction "Rename" également.

Si quelqu'un à un exemple de Controller pour traiter une image uploadé je pense que cela pourrait vraiment être utile pour la communauté

Hors ligne

 

#4 02-09-2010 10:57:49

domcars0
Nouveau membre
Date d'inscription: 27-07-2010
Messages: 3

Re: Zend_Form_Element_File - Modifier le nom du fichier uploadé

Bonjour,
J'ai utilisé le Filtre 'Rename' de l'Adapteur de transfert, ça marche (au moins sur)  sur la ZF 1.10.2 ...

// $photo est un Zend_Form_Element_File
$photo = $form->getElement('photo');
// Récupère l'adapter de transfert
$adapter = $photo->getTransferAdapter();
// Ajoute le Filtre 'Rename' et indique le nom final du fichier
$adapter->addFilter('Rename', array('target'=>'/dirA/dirB/nom_fichier','overwrite'=>true));
// Transfere
if (!$adapter->receive('photo')) {
    throw new Zend_Exception(implode(', ',$adapter->getMessages()));
}
return true;


Chai pas si ca peut aider ?
A+

Hors ligne

 

#5 18-10-2010 21:13:57

yann05
Membre
Date d'inscription: 26-07-2009
Messages: 13

Re: Zend_Form_Element_File - Modifier le nom du fichier uploadé

Merci beaucoup pour votre aide, voici le bout de code que j'ai finalement utilisé pour info (avec un petit système très simple de renommage) :

$photo = $form->getElement('photo');
$name = $photo->getFileName();
$ext = $ext = substr(strrchr($name,'.'),1);
$ext = strtolower($ext);
$adapter = $photo->getTransferAdapter();
$adapter->addFilter('Rename', array('target' => APPLICATION_PATH.'/../public/img/annonce/'.$num_annonce.'.'.$ext, 'overwrite'=>true));
$adapter->receive('photo');

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