|
Table des matières
Chapitre 38. Gestion des chargements de fichiersTable des matières
Explication sur les messages d'erreurs de chargement de fichiers Chargements de fichiers par méthode POSTCette fonctionnalité permet aux personnes de télécharger à la fois du texte et des fichiers binaires. Avec les fonctions d’identification et de manipulation de fichiers de PHP, vous avez le contrôle total pour définir qui a le droit de télécharger mais aussi ce qui sera fait du fichier une fois qu’il sera téléchargé. 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). PHP supporte aussi le chargement par la méthode PUT comme dans le navigateur Netscape Composer et Amaya du W3C. Reportez-vous au chapitre sur le support de la méthode PUT.
“$_FILES[’userfile’][’name’]” Le nom original du fichier, tel que sur la machine du client web. “$_FILES[’userfile’][’type’]” Le type MIME du fichier, si le navigateur a fourni cette information. Par exemple, cela pourra être ““image/gif”“. Ce type mime n’est cependant pas vérifié du côté de PHP et, donc, ne prend pas sa valeur pour se synchroniser. “$_FILES[’userfile’][’size’]” La taille, en octets, du fichier téléchargé. “$_FILES[’userfile’][’tmp_name’]” Le nom temporaire du fichier qui sera chargé sur la machine serveur. “$_FILES[’userfile’][’error’]” Le code d’erreur "error code" associé au téléchargement de fichier. Cet élément a été introduit en PHP 4.2.0
<?php // En PHP < 4.1.0, $HTTP_POST_FILES doit être utilisé // à la place de $_FILES. $uploaddir = '/var/www/uploads/'; $uploadfile = $uploaddir . basename($_FILES['userfile']['name']); echo '<pre>'; if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { echo "Le fichier est valide, et a été téléchargé avec succès. Voici plus d'informations :\n"; } else { echo "Attaque potentielle par téléchargement de fichiers. Voici plus d'informations :\n"; } echo 'Voici quelques informations de débogage :'; print_r($_FILES); echo '</pre>'; ?> Le script PHP qui reçoit le fichier chargé doit pouvoir gérer le fichier de manière appropriée. Vous pouvez utiliser la variable “$_FILES[’userfile’][’size’]” pour recaler tous les fichiers qui sont trop gros ou trop petits. Vous pouvez utiliser la variable “$_FILES[’userfile’][’type’]” pour écarter les fichiers qui n’ont pas le bon type, mais l’utiliser uniquement pour une série de vérifications, car cette valeur est complètement sous le contrôle du client et n’est pas vérifiée du côté de PHP. Depuis PHP 4.2.0, vous pouvez utiliser l’information dans “$_FILES[’userfile’][’error’]” et adapter votre politique en fonction des codes d'erreur. Quelque soit votre politique, vous devriez soit effacer le fichier du dossier temporaire, soit le déplacer. Si aucun fichier n’est sélectionné dans le formulaire, PHP retournera “0” dans “$_FILES[’userfile’][’size’]” et rien du tout dans “$_FILES[’userfile’][’tmp_name’]”. Le fichier sera automatiquement effacé du fichier temporaire à la fin du script, s’il n’a pas été déplacé ou renommé. Travail collaboratifContribuez, en ajjoutant des elements a cette page de manuel : Merci de votre aide |