Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 24-11-2011 16:23:39

Absot
Membre
Date d'inscription: 28-12-2009
Messages: 170
Site web

[Résolu] Element file formulaire qui n'affiche pas l'erreur

Bonjour, j'ai un formulaire où je possède un champs file pour uploader des images mais celui-ci n'a pas l'air de fonctionner correctement.

En effet, dans mon contrôleur lors de la vérification du formulaire, je fais un Zend_Debug::dump() avec soit "Erreur", soit "Validation" suivant le cas qu'il s'agit et j'obtiens tout le temps "Erreur" mais je n'ai pas de message d'erreur donc je ne comprends pas pourquoi vu que j'en obtiens pour mes autres champs texts mais pas celui-ci.

Voici mon élément file:

Code:

$photo = new Zend_Form_Element_File('photo');
$photo// obligatoire
      ->setRequired(true)
      // destination du fichier
      ->setDestination('C:\xampp\htdocs\concoursPhoto\public\images\photos')
      // limite a 2Mo
      ->addValidator('Size', false, 2097152)
      // extension JPEG, PNG, GIF
      ->addValidator('Extension', false, 'jpg,png,gif')
      // un seul fichier
      ->addValidator('Count', false, 1)
      // enleve code HTML
      ->addFilter('StripTags')
      // supprimer les espaces
      ->addFilter('StringTrim');

Je lui envoie bien des images avec une extension soit jpg, png ou gif et inférieur à 2Mo..

Pourtant, cet élément fonctionne correctement dans un autre projet mais qui est en ligne alors que celui-ci ne l'est pas, peut-être est-ça la cause?

Dernière modification par Absot (25-11-2011 10:53:22)

Hors ligne

 

#2 24-11-2011 16:36:29

Absot
Membre
Date d'inscription: 28-12-2009
Messages: 170
Site web

Re: [Résolu] Element file formulaire qui n'affiche pas l'erreur

En utilisant ce code dans mon formulaire lorsqu'il n'est pas valide:

Code:

if (!$form->photo->receive()) 
{
    Zend_Debug::dump("Erreur de réception de fichier");
}
Zend_Debug::dump($form->photo->getFileName());

J'ai l'erreur de réception (qui n'est pas faux comme il n'y a rien dans mon répertoire) et pour le chemin du répertoire, il n'y a rien, je vais donc essayer en mettant mon projet sur un FTP pour voir si ça change quelque chose..

Edit: Apparemment, ca n'a vient pas du fait que ce soit en local parce que je viens de le mettre sur un FTP et ça ne change rien..

Voilà ce que je fais dans mon contrôleur:

Code:

if ($form->isValid($formData))
{
    /** Photo **/
    // Pour pouvoir DL la photo
    $photoDL = $form->getValue('photo');
        *** Traitement ***
}else 
{
    $form->populate($formData);
    Zend_Debug::dump('Erreur');
    if (!$form->photo->receive()) 
    {
        Zend_Debug::dump("Erreur de réception de fichier");
    }
    Zend_Debug::dump($form->photo->getFileName());
    if(!$form->photo->isUploaded())
    {
        Zend_Debug::dump("Pas DL");
    }
    if(!$form->photo->isReceived())
    {
        Zend_Debug::dump("pas recu");
    }
    if(!$form->photo->isFiltered())
    {
        Zend_Debug::dump("pas filtre");
    }
}

Tout mes messages d'erreurs s'affichent..

Le nom de l'image que j'utilise s'appelle 9.jpg et pèse 33ko.

Dernière modification par Absot (24-11-2011 17:11:47)

Hors ligne

 

#3 25-11-2011 09:31:59

Absot
Membre
Date d'inscription: 28-12-2009
Messages: 170
Site web

Re: [Résolu] Element file formulaire qui n'affiche pas l'erreur

J'ai essayé en mettant mon répertoire public à 777 et ca ne change pas, je ne sais plus quoi faire.. :'(

Hors ligne

 

#4 25-11-2011 09:38:00

f.garoby
Membre
Date d'inscription: 02-03-2011
Messages: 105

Re: [Résolu] Element file formulaire qui n'affiche pas l'erreur

bonjour,
As-tu pensé à mettre cet attribut sur ton formulaire ?

Code:

[lang=php]
$form->setAttrib('enctype', 'multipart/form-data');

Hors ligne

 

#5 25-11-2011 10:53:01

Absot
Membre
Date d'inscription: 28-12-2009
Messages: 170
Site web

Re: [Résolu] Element file formulaire qui n'affiche pas l'erreur

J'ai résolu mon problème! :mrgreen:

Avant quand j'affichais mon formulaire à la façon zend en faisant:

Code:

<?php echo $this->form; ?>

Zend faisait tout tout seul mais comme j'ai voulu l'afficher comme je le voulais, je n'avais pas mis dans l'affichage le enctype="multipart/form-data", ce qui faisait, que ca ne passait pas..

Comment perdre 3 heures! :aie:

Merci. smile

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