Manuel PHP
Précédent
 

Chapitre 18. Gestion des chargements de fichier

Table des matières
Méthode de chargement par POST
Erreurs communes
Chapitreloading multiple files
PUT method support

Chargements de fichiers par méthode POST

PHP est capable de recevoir des fichiers émis par un navigateur conforme à la norme RFC-1867 (c'est à dire Netscape Navigator 3 ou supérieur, Microsoft Internet Explorer 3 avec un patch de Microsoft, ou supérieur sans le patch). Cette fonctionnalité permet de charger des fichiers texte binaire. Avec l'authentification et les fonctions de manipulation des fichiers, vous avez un contrôle total sur le chargement et la gestion des fichiers chargés.
Notez bien que PHP supporte aussi le chargement par la méthode PUT comme dans le navigateur Netscape Composer et les clients Amaya du W3C. Allez voir à Support de la méthode PUT pour plus de détails.
Un écran de chargement de fichiers peut être constitué en créant un formulaire de la manière suivante :

Exemple 18-1. Formulaire de chargement de fichiers
<FORM ENCTYPE="multipart/form-data" ACTION="_URL_" METHOD=POST>
<INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000">
Envoyez le fichier suivant : <INPUT NAME="userfile" TYPE="file">
<INPUT TYPE="submit" VALUE="Envoie le fichier ">
</FORM>
    

Le paramètre _URL_ doit pointer sur un fichier PHP. L'option MAX_FILE_SIZE cachée doit précéder le nom du fichier à charger, et représente la taille maximale du fichier à charger. La valeur est donnée en octets. Dans ce script, les valeurs suivantes doivent être définies pour assurer un chargement correct :
  • $userfile ñ Le nom temporaire du fichier qui sera chargé sur la machine serveur.
  • $userfile_name ñ Le nom du fichier original sur le système de l'envoyeur.
  • $userfile_size ñ La taille envoyée en octets.
  • $userfile_type ñ Le type mime du fichier, si le navigateur a fourni cette information. Par exemple, "image/gif".
Notez que $userfile prend la valeur qui est passée dans le champs INPUT de type TYPE=file. Dans l'exemple ci dessus, nous avons choisi de l'appeler "userfile".
Les fichiers seront enregistrés par défaut dans le dossier temporaire du système. Ceci peut être changé en modifiant la variable d'environnement TMPDIR de l'environnement dans lequel PHP fonctionne. Vous pouvez modifier cette valeur depuis PHP même, avec la fonction putenv().
Le script PHP qui reçoit le fichier chargé doit pouvoir gérer le fichier de manière appropriée. Par exemple, si $file_size est trop grande, vous pouvez retourner une erreur au navigateur, et annuler le chargement. Vous pouvez aussi utiliser la variable $file_type pour retourner une erreur si le type de fichier n'est pas le bon.
Le fichier sera effacé du dossier temporaire à la fin du script, si il n'a pas été déplacé ou renommé.
Précédent
Sommaire
Cookies
Chapitre
Common Pitfalls