article(s) dans votre panier VOIR

Tuto PHP/MySQL | Transmission de fichiers par formulaire

  • Vidéo 83 sur 158
  • 4h43 de formation
  • 158 leçons

Un contenu flash devrait s'afficher ici. Votre navigateur ne comporte pas de plugin flash, ou il ne s'est pas correctement initialisé.

Vous pouvez télécharger le plugin flash depuis le site d'Adobe à l'adresse suivante : http://get.adobe.com/flashplayer/.

Pour accéder à la suite de cette formation, vous devez vous abonner.
previous
summary
resume
next
play
Transmission de fichiers par formulaire
00:00 / 05:57
HD
fullscreen
Je m’abonne
à partir de 16,6 € / mois
  • Visionnage en ligne
  • Accès illimité à toutes nos formations
OU
J'achète uniquement
la formation
49,90€
  • Téléchargement + VOD à vie
  • Accès uniquement à cette formation

Sommaire de la formation

Détails de la formation

Pour transmettre un fichier à un script PHP, vous devez mettre en place un formulaire spécial dans lequel l'attribut enctype est initialisé à multipart/form-data :

Voici le code complet d'un formulaire qui demande à l'utilisateur de choisir un fichier texte dans les unités de masse de son ordinateur :

Ouverture d'un fichier par formulaire

Choisissez un fichier texte (extension .txt)


Dans la balise form, nous spécifions l'attribut enctype et nous l'initialisons à "multipart/form-data". Ainsi, nous pourrons transmettre un fichier par le formulaire. L'utilisateur peut choisir un fichier dans ses unités de masse grâce à un champ input de type file.
Lorsque le bouton Envoyer est cliqué, le fichier choisi est communiqué au script fichier.php en utilisant la méthode post. Nous allons maintenant nous intéresser au script fichier.php.
Pour télécharger sur le serveur le fichier choisi dans le formulaire, vous utiliserez :
Les informations contenues dans la variable superglobale $_FILES dont voici le détail :

Elément du tableau Signification
$_FILES Le nom original du fichier, tel qu'il a été défini sur la machine du client web.
$_FILES Le type MIME du fichier, si le navigateur a fourni cette information. Par exemple, "image/gif".
$_FILES La taille, en octets, du fichier téléchargé.
$_FILES Le nom temporaire du fichier qui sera chargé sur la machine serveur.
$_FILES Le code d'erreur associé au téléchargement de fichier.

Dans ce tableau, on suppose que le nom du fichier à télécharger a été saisi dans un champ input de type file nommé fichierTexte.

Vous utiliserez également la fonction move_uploaded_file() dont voici le gabarit :
move_uploaded_file(temp, nom);
Où temp est le nom du fichier à télécharger et nom est la destination du fichier téléchargé.
Voici le code utilisé pour sauvegarder le fichier choisi par l'utilisateur sur le serveur :

Si l'entrée fichierTexte existe dans le tableau superglobal $_FILES, le nom du fichier et le nom temporaire du fichier sur le serveur sont récupérés en lisant le contenu des cellules name et tmp_name du tableau $_FILES. Ces valeurs sont stockées dans les variables $name et $tmp_name.
Pour effectuer le transfert du fichier depuis le client sur le serveur, il suffit maintenant d'exécuter la fonction move_uploaded_file en lui transmettant le nom temporaire du fichier et le nom original du fichier.
Pour rendre ce code plus robuste, vous pourriez :
tester si aucun code d'erreur n'a été émis concernant le fichier ;
vérifier que le fichier spécifié par l'utilisateur est bien un fichier texte ;
vérifier que la taille du fichier n'est pas trop imposante :
Voici le code à utiliser pour tenir compte de ces remarques :