Cet input permet à l'utilisateur d'envoyer un fichier sur le serveur. Ce widget permet de :
filepreview)Remarques :
Ce widget partage une liste de paramètres génériques communs à tous les widgets Input. Veuillez consulter la documentation du widget Input pour connaître la liste des paramètres génériques.
Voici les paramètres spécifiques pour ce widget :
| Nom | Type | Valeur par défaut | Description |
|---|---|---|---|
| value | Array | array() | On peut éventuellement indiquer un chemin vers un fichier (ou vers sa cible), un mime-type, et un nom de fichier pour utiliser la fonctionnalité de pré-visualisation du widget (cf section résultat pour la structure précise du tableau) |
| filepreview | boolean | true | Active ou désactive la pré-visualisation du fichier envoyé (ou passé en paramètre) lors de l'initialisation du widget |
| filepreview_params | array | array() | Permet d'envoyer des paramètres spécifiques aux widget FilePreview utilisé pour pré-visualiser les fichier envoyés. |
| generate_meta | boolean | true | Active ou désactive la création automatique du fichier meta utilisé pour la pré-visualisation simplifiée des fichiers envoyés. |
| maxlength | integer | 0 | Permet de limité coté client la taille en octets (0 signifie pas de limite) des fichier envoyés (Attention : à la date du 5 juin 2009, cet attribut n'est pas supporté par les navigateurs Web) |
| accept | Array | array() | Contient la liste des “mime-types” de fichiers acceptées pour les envois. Exemple : array("application/msword", "application/rtf") (Attention : a la date du 4 juin 2009, cet attribut n'est pas supporté par les navigateurs Web) |
Le widget retourne un tableau descriptif du fichier qui a été envoyé. Le contenu du fichier envoyé est stocké dans un fichier temporaire sur le serveur (généré via la fonction tempnam(…)) . Voici la structure du tableau résultat :
file : le chemin du fichier temporaire contenant le fichier envoyé (à charge du développeur de le copier dans le fichier de destination final) meta : les méta données associée au fichier envoyéname : le nom du fichier envoyé par le client (nom du fichier sur le poste du client)type : le mime-type du fichier envoyé (généré par le navigateur)size : la taille en octets du fichier envoyé
Remarque :
Après envoi, un fichier de méta données sera créé automatiquement contenant les valeurs name, type et size vues ci-dessus. Par convention, le chemin de ce fichier sera basé sur celui du fichier envoyé (file). La chaîne de caractères ”.meta” lui sera suffixée pour générer le chemin du fichier de méta données. Par exemple : si un fichier est envoyé dans /tmp/monfichier, alors le fichier /tmp/monfichier.meta sera automatiquement généré.
Cette opération automatique permet au développeur de gérer la pré-visualisation des fichier envoyés à moindre coûts. Cependant ce comportement peut être gênant dans certains cas, on peut le désactiver avec le paramètre generate_meta.
Dans cet exemple on se contente de recevoir un fichier et de récupérer son chemin (généré automatiquement par le widget) et ses méta-données lors du traitement des résultats :
require_once "Pxxo/Widget/Form.php"; $params = array(); $params['show_form_when_submit'] = true; // permet de pré-visualiser le fichier une fois envoyé $params['inputs'] = array(); $params['inputs'][] = array('id' => 'input_file', 'label' => 'Mon fichier :', 'type' => 'file' ); $o = new Pxxo_Widget_Form($params); $o->addDecorator('Pxxo_Widget_Decorator_Core'); $o->main(); if ($o->getMode() == 'submit') { $result = $o->getResult('input_file'); // $result['file']; <- contiendra le chemin vers le fichier temporaire contenant le fichier qui vient d'être envoyé // $result['meta']['name']; <- contiendra le nom du fichier envoyé par le client (nom sur le poste du client) // $result['meta']['type']; <- contiendra le type-mime du fichier envoyé (indiqué par le navigateur Web) // $result['meta']['size']; <- contiendra la taille en octets du fichier envoyé } $o->dump();
Dans cet exemple on force la sauvegarde du fichier envoyé à un endroit précis sur le serveur (le fichier ne sera sauvegardé qu'une fois toutes les callback de validation passées) :
require_once "Pxxo/Widget/Form.php"; $params = array(); $params['show_form_when_submit'] = true; // permet de pré-visualiser le fichier une fois envoyé $params['inputs'] = array(); $params['inputs'][] = array('id' => 'input_file', 'label' => 'Mon fichier :', 'type' => 'file', 'value' => array('file' => '/tmp/monfichier') ); $o = new Pxxo_Widget_Form($params); $o->addDecorator('Pxxo_Widget_Decorator_Core'); $o->main();
©2003-2010 Pxxo
Partenaires : INIST-CNRS | Sourcesup | Web2.0 chat server | Micropolia | Jeux gratuits | Areno