Avec PHP, il est possible de télécharger des fichiers vers le serveur.
Permettre aux utilisateurs de télécharger des fichiers à partir d'un formulaire peut être très utile.
Regardez le formulaire HTML suivant pour télécharger des fichiers:
|
<html> |
Regardons ce qui se passe dans le formulaire HTML ci-dessus:
Note: Permettre aux utilisateurs de télécharger des fichiers présente un gros risque de sécurité. Alors faites très attention
Le "upload_file.php" est le fichier qui contient le code pour télécharger un fichier:
Code de « upload_file.php » :
|
<?php echo "Type : " . $_FILES["file"]["type"] . "<br />"; echo "Taille : " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Stocké dans : " . $_FILES["file"]["tmp_name"]; } |
En utilisant le tableau $ _FILES de PHP vous pouvez télécharger des fichiers depuis un ordinateur client vers le serveur distant.
Les éléments de ce tableau sont comme suit:
L’exemple précèdent est un moyen très simple de télécharger des fichiers. Mais pour des raisons de sécurité, vous devez ajouter des restrictions sur ce que l'utilisateur peut télécharger.
Dans ce script nous ajoutons certaines restrictions à l'upload de fichier. L'utilisateur peut seulement télécharger des fichiers gif ou jpeg et la taille du fichier doit être de moins de 20 ko..:
Code de « upload_file.php » :
|
<?php |
Remarque: Pour que IE reconnaît les fichiers jpg le type doit être pjpeg, pour FireFox il doit être JPEG.
Les exemples ci-dessus créer une copie temporaire des fichiers téléchargés dans le dossier temp de PHP sur le serveur.
Les fichiers temporaires copiés disparaissent lorsque le script se termine. Pour stocker le fichier téléchargé nous avons besoin de le copier vers un autre emplacement:
Code de « upload_file.php » :
|
<?php if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/pjpeg")) && ($_FILES["file"]["size"] < 20000)) { if ($_FILES["file"]["error"] > 0) { echo "Return Code: " . $_FILES["file"]["error"] . "<br />"; } else { echo "Fichier à télécharger : " . $_FILES["file"]["name"] . "<br />"; echo "Type: " . $_FILES["file"]["type"] . "<br />"; echo "Taille: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />"; echo "Fichier temporaire : " . $_FILES["file"]["tmp_name"] . "<br />";
if (file_exists("upload/" . $_FILES["file"]["name"])) { echo " Le fichier".$_FILES["file"]["name"] . " existe déjà à cette emplacement. "; } else { move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]); echo "Enregistré dans : " . "upload/" . $_FILES["file"]["name"]; } } } else { echo "Chemin invalide !!"; } ?> |
Le script ci-dessus vérifie si le fichier existe déjà, si non, il copie le fichier vers le dossier spécifié.
Note: Cet exemple enregistre le fichier dans un sous dossier appelé "upload" qui existe dans le même dossier que le fichier « upload_file.php »
|
|
Le langage php |
Manipulation d'exception |
| Tweet |