Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 12-03-2010 09:52:30

lbnico
Nouveau membre
Date d'inscription: 08-03-2010
Messages: 9

[Zend_File_Transfer][1.10.1] Mime-type et taille du fichier vide

Bonjour,

J'essaye d'uploader un fichier avec Zend et de stocker dans la base de donnée les caractéristiques du fichier.

Pour ce qui est de l'upload, pas de soucis ça fonctionne bien... Par contre lorsque j'essaye de récupérer la taille et le type de mon fichier, ces informations sont vide.

Voila comment je procède dans mon controller:

Code:

$form=new Admin_Form_Document();
$this->view->form=$form;

if ($this->_request->isPost()){
    $formData = $this->_request->getPost();
            
        $form->populate($formData);
            
        $chemin = "/chemin/vers/mon/repertoire/upload";
    $form->nom->setDestination($chemin);
            
        $formData=$form->getValues();

        if ($form->isValid($formData)){        
        $adapter= new Zend_File_Transfer_Adapter_Http();
        $fileInfos=$adapter->getFileInfo();
                                
        print_r($fileInfos['nom']);
                
    }
}

Et le code du formulaire :

Code:

class Admin_Form_Document extends Zend_Form
{

    function __construct($options = null) 
    { 
        parent::__construct($options);
        $this->setName('document');     
        $this->setAttrib('enctype', 'multipart/form-data');  
          
                
        $nom = new Zend_Form_Element_File('nom');
        $nom->setRequired(true)
                ->addValidator('NotEmpty')
                ->addValidator('Count', false, 1)
                   ->addValidator('Size', false, 3145728)
                ->addValidator('Extension', false, 'jpg,png,bmp,gif,jpeg,pdf,txt,doc,pps,ppt,xls');
                
        $submit = new Zend_Form_Element_Submit('submit');
        $submit->setLabel('Ajouter');
   
           $this->addElements(array($nom,$submit));        
    }

et voila ce que me retourne le print_r($fileInfos['nom']) (alors que l'upload à bien fonctionné...)

Code:

Array ( 
           [name] => nomdufichier.jpg 
           [type] => 
           [tmp_name] => C:\wamp\tmp\phpC3A.tmp 
           [error] => 0 
           [size] => 
           [options] => Array ( 
                                            [ignoreNoFile] => 
                                            [useByteString] => 1 
                                            [magicFile] => 
                                            [detectInfos] => 1 ) 
           [validated] => 
           [received] => 
           [filtered] => 
           [validators] => Array ( [0] => Zend_Validate_File_Upload )
    )

Voilà, merci beaucoup pour votre aide...

Nico.

Hors ligne

 

#2 12-03-2010 16:23:20

slake13
Membre
Date d'inscription: 25-06-2009
Messages: 17

Re: [Zend_File_Transfer][1.10.1] Mime-type et taille du fichier vide

Salut, as-tu activé l'extension fileInfo dans php ?

Hors ligne

 

#3 13-03-2010 22:50:45

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: [Zend_File_Transfer][1.10.1] Mime-type et taille du fichier vide

Hello,

Peux-tu préciser ton environnement ? (OS, PHP, Extension)

@+


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#4 15-03-2010 09:31:31

lbnico
Nouveau membre
Date d'inscription: 08-03-2010
Messages: 9

Re: [Zend_File_Transfer][1.10.1] Mime-type et taille du fichier vide

Hello,

Merci pour vos réponses. Donc effectivement l'extension fileinfo n'était pas activée...

Cependant cela ne fonctionne toujours pas. Pour ce qui est de mon environnement (pour le moment je développe en local, mais j'ai testé sur le serveur sans plus de succès) :

OS : Windows XP
PHP : 5.2.9-2
Zend : 1.10.1

De mon côté j'ai avancé un peu et j'ai testé mon code avec une version précédente de Zend (la 1.9.7), et là, miracle, ça fonctionne !

Alors y a t-il un bug connu là dessus avec la 1.10 ? Est-ce qu'il vaut mieux que je reste comme ça avec la 1.9.7 ou est-ce que ça craint un peu ?

@+

Hors ligne

 

#5 15-03-2010 16:46:12

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: [Zend_File_Transfer][1.10.1] Mime-type et taille du fichier vide

Hello,

Thomas a effectivement travaillé sur le sujet la semaine dernière (donc présent dans la 1.10.3).
As-tu la possibilité d'essayer avec le code la branche 1.10 du SVN ?
Lien : http://framework.zend.com/code/browse/S … lease-1.10
En bas à gauche tu as au choix : ZIP, TGZ, TBZ2.

@+


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#6 15-03-2010 23:26:16

throrin19
Membre
Date d'inscription: 01-03-2009
Messages: 318
Site web

Re: [Zend_File_Transfer][1.10.1] Mime-type et taille du fichier vide

tu peux normalement directement récupérer ces infos avec ton élément Zend_Form_Element_File

Code:

$data = $form->nom->getFileInfo();

Hors ligne

 

#7 17-03-2010 10:52:57

lbnico
Nouveau membre
Date d'inscription: 08-03-2010
Messages: 9

Re: [Zend_File_Transfer][1.10.1] Mime-type et taille du fichier vide

Hello,

Alors j'ai téléchargé la release 1.10, mais du coup j'ai toute l'appli qui bug... J'ai du louper quelque chose...

Par contre j'ai regardé le manuel pour les migration et j'ai trouvé ceci :

MimeType validation

For security reasons we had to turn off the default fallback mechanism of the MimeType, ExcludeMimeType, IsCompressed and IsImage validators. This means, that if the fileInfo or magicMime extensions can not be found, the validation will always fail.

If you are in need of validation by using the HTTP fields which are provided by the user then you can turn on this feature by using the enableHeaderCheck() method.

    Note: Security hint
    You should note that relying on the HTTP fields, which are provided by your user, is a security risk. They can easily be changed and could allow your user to provide a malcious file.

Et ça :

Zend_File_Transfer
Security change

For security reasons Zend_File_Transfer does no longer store the original mimetype and filesize which is given from the requesting client into its internal storage. Instead the real values will be detected at initiation.

Additionally the original values within $_FILES will be overridden within the real values at initiation. This makes also $_FILES secure.

When you are in need of the original values you can either store them before initiating Zend_File_Transfer or use the disableInfos option at initiation. Note that this option is useless when its given after initiation.

Le problème c'est que j'ai un peu de mal a saisir ce que cela signifie concrètement au niveau de mon code, si une ame charitable veux bien m'expliquer... :-)

Merci
@+
Nico.

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