Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 10-09-2009 07:34:17

DarKA
Membre
Date d'inscription: 18-07-2007
Messages: 84

[Zend 1.9.2] Zend File Zend validate IsImage & MimeType bug ?

Salut,
Je voudrais avoir votre avis sur un comportement bizarre que j'ai relevé :

Je cherche à créer un formulaire d'upload de fichier.

Formulaire :

Code:

    $this->setAttrib('enctype','multipart/form-data');
    $upload = new Zend_Form_Element_File('file');
    $upload->addValidator('IsImage', true);
    $this->addElement($upload);

Dans le Controller:

Code:

    $transfer= new Zend_File_Transfer_Adapter_Http(array ('ignoreNoFile' => true ));
    $transfer->addValidator('IsImage', true);

Mais voila, aucune exception n'est levée quand j'envoie un fichier texté renommé en .jpg. Je ne comprends pas pourquoi.

Mes éléments sont correctment liés puis je fais les différents "->isValid", qui marchent partout avec tous les Validators, sauf celui la.

J'ai essayé le validator Mimetype, mais idem : inefficace.

Code:

    $upload->addValidator('MimeType', false, 'image');

Zendment,

Dernière modification par DarKA (10-09-2009 07:36:30)

Hors ligne

 

#2 04-02-2010 19:07:13

DarKA
Membre
Date d'inscription: 18-07-2007
Messages: 84

Re: [Zend 1.9.2] Zend File Zend validate IsImage & MimeType bug ?

Salut,
Je pense que le soucis provient du fait que pour que ca marche bien, il faut installer un composant supplémentaire, et donc la méthode utilisé ne marche pas bien ici.
J'ai opté pour une autre option qui marche tout aussi bien.
J'ai créé un validator, et j'utilise getimagesize, qui ne me renvoie un résultat que si il s'agit d'une image, ce qui est parfait ici.

Code:

class App_Validate_Image extends Zend_Validate_Abstract
{
    /**
     * @const string Error constants
     */
    const FALSE_TYPE   = 'fileIsImageFalseType';
    const NOT_DETECTED = 'fileIsImageNotDetected';
    const NOT_READABLE = 'fileIsImageNotReadable';

    /**
     * @var array Error message templates
     */
    protected $_messageTemplates = array(
        self::FALSE_TYPE   => "The file '%value%' is no image",
        self::NOT_DETECTED => "The mimetype of file '%value%' has not been detected",
        self::NOT_READABLE => "The file '%value%' can not be read"
    );
   
    /**
     * Sets default option values for this instance
     *
     * @param  boolean $allowWhiteSpace
     * @return void
     */
    public function __construct()
    {
    }

    /**
     * Defined by Zend_Validate_Interface
     *
     * Returns true if and only if $value contains only alphabetic and digit characters
     *
     * @param  string $value
     * @return boolean
     */
    public function isValid($value)
    {
        $finfo = getimagesize($value);
       
        $this->_setValue($value);

       
        if (!$finfo) {
            $this->_error(self::FALSE_TYPE);
            return false;
        }
       
        return true;
    }

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