Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 09-02-2011 13:16:53

cvbdev
Membre
Date d'inscription: 20-01-2011
Messages: 27

Comment uploader des fichiers spécifiques ?

Bonjour,

Actuellement sur une opération d'export et d'import des données j'ai une petite question que je n'arrives pas à résoudre.

Lors de la phase d'upload j'autorise uniquement les fichiers "*.csv" et "*.xls" ! Quand la boîte de dialogue s'ouvre (formulaire Zend_Form_Element_File), permettant d'aller chercher les fichiers sur le disque, cette dernière m'affiche "tout les fichiers"...

Comment remplacer dans la boîte de dialogue "tout les fichiers" par les extensions que je désires (*.csv / *.xls) ! ?
Comment faire ?


Code:

        /* Création zone de liste de langue */
        $element_file = new Zend_Form_Element_File('import_langue');
        $element_file->setLabel("Langues à exporter")
            ->setRequired(true)
            ->addFilter('StripTags')
               ->addValidator('Extension', TRUE, 'csv,xls')
            ->addValidator(new Zend_Validate_File_MimeType('text/csv', 'application/vnd.ms-excel')); 
        
        $element_file->class = "import_export_zone_liste";
        $element_file->addError('Humm...mauvais type de fichier (*.csv ou *.xls) !');
        
        /* Création bouton submit */
        $submit_button = new Zend_Form_Element_Submit('submit_export_donnees');
        $submit_button->setLabel("Exporter les données");
        $submit_button->setValue("Valider");
        /* ajouter l'ensemble dans un tableau */
        $elements = array($element_file, $submit_button);
        $form_import = $this->addElements($elements);

D'avance merci
++

Hors ligne

 

#2 09-02-2011 13:31:28

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: Comment uploader des fichiers spécifiques ?

Dans ta balise <input type="file"> il faut ajouter l'attribut  "accept=...".

Tu as le détail du truc à la page suivante :
http://fr.selfhtml.org/html/formulaires … ichier.htm

Voilà un extrait :

Si vous ne voulez accepter que certains types de fichiers, vous pouvez grâce à la mention accept= limiter les types de fichiers permis (accept = accepter). Derrière le signe égal, vous pouvez mentionner un Autre page d'information type Mime. Pour cela les jokers (*) sont aussi permis. Dans l'exemple ci-dessus tous les fichiers texte sont acceptés grâce à text/*. En font partie de purs fichiers texte(*.txt) , mais aussi les fichiers HTML (*.html,*.htm). Ne vous fiez pas trop non plus à cette mention pour que le navigateur vérifie réellement le type avant l'envoi du fichier.

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#3 09-02-2011 13:34:41

cvbdev
Membre
Date d'inscription: 20-01-2011
Messages: 27

Re: Comment uploader des fichiers spécifiques ?

philippe a écrit:

Dans ta balise <input type="file"> il faut ajouter l'attribut  "accept=...".

Tu as le détail du truc à la page suivante :
http://fr.selfhtml.org/html/formulaires … ichier.htm

Voilà un extrait :

Si vous ne voulez accepter que certains types de fichiers, vous pouvez grâce à la mention accept= limiter les types de fichiers permis (accept = accepter). Derrière le signe égal, vous pouvez mentionner un Autre page d'information type Mime. Pour cela les jokers (*) sont aussi permis. Dans l'exemple ci-dessus tous les fichiers texte sont acceptés grâce à text/*. En font partie de purs fichiers texte(*.txt) , mais aussi les fichiers HTML (*.html,*.htm). Ne vous fiez pas trop non plus à cette mention pour que le navigateur vérifie réellement le type avant l'envoi du fichier.

A+, Philippe

Bonjour,

Super, merci je vais regarder ça  ! smile
++

Hors ligne

 

#4 09-02-2011 15:18:03

cvbdev
Membre
Date d'inscription: 20-01-2011
Messages: 27

Re: Comment uploader des fichiers spécifiques ?

Re,

Petit soucis !
L'attribut "accept" n'est pas pris en compte sous Firefox ?
Comment contourner ce soucis ?

Code:

<form action="input_file.htm" enctype="multipart/form-data">
<p>
Choisissez un fichier texte (txt, html etc.) de votre ordinateur:<br>
<input name="fichier" type="file" size="50" maxlength="100000" accept="text/*">
</p>
</form>

D'avance merci
++

Hors ligne

 

#5 09-02-2011 20:26:03

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: Comment uploader des fichiers spécifiques ?

Hum... en fouillant un peu sur Internet, il semble qu'il n'y ait pas de vraie solution HTML qui marche avec tous les browsers.

J'ai vu des solutions qui semblaient marcher, mais elles utilisent un loader en flash :
ex: YUI3 uploader
http://developer.yahoo.com/yui/3/uploader/

Bon, c'est pas génial, mais c'est le seul système que j'ai trouvé.
(note : j'avais utilisé l'uploader de YUI2 dans ma jeunesse, il marchait sans problème avec les filtres sur les extensions)

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#6 09-02-2011 20:34:26

cvbdev
Membre
Date d'inscription: 20-01-2011
Messages: 27

Re: Comment uploader des fichiers spécifiques ?

Bonsoir philippe,

J'ai fais le même constat ! Que cette méthode était valable pour IE, Opera mais défaillante pour Firefox y compris pour la version 4.0 !

Je supose que c'est pour des raisons de sécurité. J'avais déjà eue ce soucis une fois pour le téléchargement de plusieurs fichiers (selection multiple), depuis un input de type file (possible sous IE, impossibe sous Firefox). C'est un peu dommage mais bon...! smile

Bonne soirée
++ 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