Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
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
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
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
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
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
Pages: 1