InfoProGraphie Simple > Tutoriels > Programmation > Site Web > PHP/MySQL > Envoi de fichier sur le serveur
Auteur: haaa11
Bon, avant d'envoyer le fichier, il faux un formulaire d'envoi , cela est très simple à créer
, regarder :
Code:
Mais c'est quoi se code ?
Je vais vous l'expliquer tout de suite :
Code:
- <form indique que c'est un formulaire.
- action="stocker.php" indique que on dois envoyer à la page stocker.php.
- method="post" indique la méthode.
Code:
Créer le champ "parcourir" pour sélectionner le fichier à envoyer.
Code:
Sert à envoyer les donnés du formulaire.
Bon, une fois cela fais, il nous faut passer à la page stocker.php, pour héberger le fichier .
Maintenant, il ne reste plus que à stocker le fichier et vérifier son extension, cela grâce au script PHP, que nous allons faire ensemble .
Comment fait-on pour héberger le fichier ?
Cela est très simple il suffit de faire:
Code:
Explication du code:
- move_uploaded_file Déplace le fichier dans son dossier.
- $_FILES['fichier']['tmp_name'] On indique quel fichier déplacer (donc le fichier qui à temporairement été stocker)
- 'upload/'.basename($_FILES['fichier']['name']) nom du fichier avec son extension ($_FILES['fichier']['name'] nom du fichier avec son extension) plus l'endroit où il doit être stocker (ici dans le répertoire upload).
C'est bien joli ça, mais on ne vérifie même pas si il y a des erreurs, son poids et sa taille...
Je sais , un peu de patience, j'y viens.
En premier nous allons vérifier si il ne c'est produit aucune erreur, grâce à se joli if() :
Code:
Voilà ajouter se if() au code de stockage, ça vous donne cela normalement (noté que j'ai rajouter un else):
Code:
Bon maintenant vérifions le poids du fichier .
Il vous suffit d'ajouter à notre code ce if() (pour limiter l'envoi à 10Ko cela fais 10240 octets, car le poids est vérifier en octet) :
Code:
Ce qui nous donne:
Code:
Bon, maintenant il faut vérifier son extension , c'est très simple
.
Ici nous allons accepter seulement les extensions suivante:
.bmp, .png, .gif
Encore une foi, nous allons utilisés le if(), mais cette foi si il faux préparer des variable avant.
Comment on fait pour connaître l'extension ?
Tout d'abord il faut récupérer les informations sur le fichier, à l'aide de cette commande: pathinfo($_FILES['fichier']['name'])
Mais pour pouvoir récupérer l'extension facilement il faut stocker ses informations dans une variable, comme ceci:
Code:
Maintenant, nous allons récupérer l'extension et la stocker dans une variable (vous comprendrez vers la fin du tuto pourquoi ):
Code:
Maintenant nous allons faire une variable avec un tableau qui contient les extensions autoriser:
Code:
Libre à vous d'en rajouter, de les changer, etc... .
Bon maintenant nous allons vérifier si le fichier à bien une des extensions autoriser de notre tableau :
Code:
Donc si vous avez bien suivit au final cela nous donne:
Afficher
Allez maintenant on peut passer au changement de nom du fichier .
Bon, maintenant nous allons modifier le nom du fichier selon la date et l'heure qu'il est lors de l'envoi. C'est à dire le Timestamp, c'est une série de chiffre qui indique la date est l'heure au moment où on le demande, pour le récupérer on utilise tout simplement time().
Ah, ba je sais alors il me suffit juste de faire move_uploaded_file($_FILES['fichier']['tmp_name'], 'upload/'.basename("fichier".time()));, non ?
Faux , si vous faites cela, le fichier sera, bien sure, stocker avec le nom fichier+le timestamp, mais il n'aura pas d'extension
, il sera illisible. !!
Il vous faux donc faire cela:
Code:
Et oui, souvenez vous de notre variable $extension, je vous avais dit qu'elle serait utile, maintenant c'est bon le fichier a changer de nom et a une extension !
Donc, voici notre code final :
Afficher
Et voilà c'est fini , c'était pas très compliquer
.
Si vous avez besoins d'aide ou des questions allez sur le forum .
Les cours sont la propriété de leurs auteurs respectifs.
Toute reproduction totale ou partielle sans l'accord des auteurs est interdite.