Script Web Pour Upload Des Fichier Sur Le Serrver
7.PHP pour le web
7.5.Upload de fichier
seven.5.1.Présentation
50'upload de fichier consiste à transférer un fichier de l'ordinateur de 50'utilisateur vers le serveur web (il southward'agit de l'opération inverse du téléchargement ou terme anglais download). Ceci peut vous permettre de proposer à un utilisateur de mettre en ligne des photos, des images.
7.5.2.Le formulaire
L'upload de fichier s'appuie tout simplement sur le protocole fourni par le navigateur. La première étape consiste donc à mettre en place un formulaire proposant un bouton, autorisant l'utilisateur à sélectionner united nations fichier sur son disque dur. Cela se fait grâce au bout de code HTML qui adapt:
<html> <body> <class enctype="multipart/form-data" action="fileupload.php" method="postal service"> <input type="hidden" name="MAX_FILE_SIZE" value="100000" /> Transfère le fichier <input type="file" name="monfichier" /> <input type="submit" /> </class> </body> </html>
Ce formulaire doit comporter les quelques spécificités suivantes:
- utilisation de la method="mail" la seule permettant le transfert de données volumineuses
- une option enctype="multipart/grade-information" indiquant un échange de données
- un champ caché (optionnel) indiquant la taille maximale (en octets) autorisée pour le fichier à "uploader"
- un champ de type fichier permettant entre autre à fifty'utilisateur de sélectionner le fichier dans son système de fichiers.
- il doit renvoyer (champ action) vers united nations script PHP capable de "réceptionner" le fichier (il due south'appelle ici fileupload.php )
|
|
Mais que devient le fichier transféré sur le serveur web? Qu'est-ce que je dois mettre dans le fichier fileupload.php ? C'est ce que nous allons voir.
7.5.iii.Réception des données coté serveur
Une fois, le fichier sélectionné et le bouton de validation du formulaire pressé, le navigateur va lire le contenu du fichier, le formatter et l'envoyer au serveur spider web (dans une requête HTTP). Le serveur web le stocke alors dans un espace temporaire sous un nom arbitraire.
Le "moteur" PHP fourni alors de nouvelles informations dans un tableau $_FILE[] (depuis PHP iv.1). Ce tableau contient alors un tableau associé à une clé de nom indique ) celui qui a été fixé dans le champ de blazon file du formulaire (ici nous ferons donc appel à $_FILES["monfichier"]).
Ce tableau contient les clés suivantes:
- tmp_name qui contient le nom (et chemin) du fichier temporaire sous lequel le fichier a été stocké.
- proper noun qui contient le nom qu'avait le fichier dans l'espace de 50'utilisateur
- size qui contient la taille du fichier en octets
- type qui contient le "MIME type" du fichier (ex: text/html, image/gif, etc.)
Le nom et chemin du fichier temporaire est donc donné par $_FILES["mon_fichier"]["tmp_name"].
Après avoir testé la présence du fichier et southward'être assuré qu'il s'agit bien d'united nations fichier uploadé (via la fonction is_uploaded_file()), il faut copier ce fichier dans united nations espace non temporaire que vous aurez défini. D'où le script (portant le nom précisé dans le champ activeness du formulaire) suivant:
<html> <head> <meta charset="utf-8"> </head> <body> <?php // Copie dans le repertoire du script avec united nations nom // incluant 50'heure a la seconde pres $repertoireDestination = dirname(__FILE__)."/"; $nomDestination = "fichier_du_".engagement("YmdHis").".txt"; if (is_uploaded_file($_FILES["monfichier"]["tmp_name"])) { if (rename($_FILES["monfichier"]["tmp_name"], $repertoireDestination.$nomDestination)) { echo "Le fichier temporaire ".$_FILES["monfichier"]["tmp_name"]. " a été déplacé vers ".$repertoireDestination.$nomDestination; } else { repeat "Le déplacement du fichier temporaire a échoué". " vérifiez 50'existence du répertoire ".$repertoireDestination; } } else { echo "Le fichier n'a pas été uploadé (trop gros ?)"; } ?> </body> </html> |
|
Nous allons, via un script un poil plus complexe améliorer ces derniers points (Pensez à le renommer en fileupload.php ou a modifier votre script fileupload.html ).
<html> <caput> <meta charset="utf-8"> </head> <trunk> <?php $nomOrigine = $_FILES['monfichier']['name']; $elementsChemin = pathinfo($nomOrigine); $extensionFichier = $elementsChemin['extension']; $extensionsAutorisees = assortment("jpeg", "jpg", "gif"); if (!(in_array($extensionFichier, $extensionsAutorisees))) { echo "Le fichier n'a pas 50'extension attendue"; } else { // Copie dans le repertoire du script avec un nom // incluant l'heure a la seconde pres $repertoireDestination = dirname(__FILE__)."/"; $nomDestination = "fichier_du_".appointment("YmdHis").".".$extensionFichier; if (move_uploaded_file($_FILES["monfichier"]["tmp_name"], $repertoireDestination.$nomDestination)) { echo "Le fichier temporaire ".$_FILES["monfichier"]["tmp_name"]. " a été déplacé vers ".$repertoireDestination.$nomDestination; } else { repeat "Le fichier n'a pas été uploadé (trop gros ?) ou ". "Le déplacement du fichier temporaire a échoué". " vérifiez fifty'beingness du répertoire ".$repertoireDestination; } } ?> </trunk> </html> Cette fois nous avons utilisé la move_uploaded_file() et repris 50'extension du fichier d'origine pour composer le nom de sauvegarde du fichier.
|
|
Et c'est tout... Mais rassurez-vous, vous avez le droit de compliquer tout cela.
Source: https://www.phpfacile.com/apprendre_le_php/upload_de_fichier
0 Response to "Script Web Pour Upload Des Fichier Sur Le Serrver"
Enviar um comentário