L'interêt d'utiliser cette methode est de permetre par exemple à vos visiteurs de pouvoir uploader des photos ou "autres types de fichiers" sur votre site.
Composition du script
Le script ce compose en deux parties, la première est la page du formulaire : upload.html et la seconde est la page contenant le script php qui upload le fichier sur le serveur : upload.php
Upload.html
Simple page "formulaire".
- Code: Tout sélectionner
<html>
<head>
</head>
<body>
<form enctype="multipart/form-data" action="upload.php3" method="post">
Fichier : <input name="fichier" type="file"><br>
<input type="submit" value="Envoyer">
</form>
</body>
</html>
Upload.php
Page php avec commentaires rajoutés.
- Code: Tout sélectionner
<?
// Taille maximum
$MAX_FILE_SIZE = 150000;
// Dossier de destination du fichier
$folder = "./";
// Tableau array des différents types
$allowed_types = array("image/bmp", "image/gif", "image/pjpeg", "image/jpeg", "image/jpg", "multipart/x-zip", "video/msvideo");
// Variables récupérée par methode POST du formulaires
$fname = $HTTP_POST_FILES['fichier']['name'];
$ftype = $HTTP_POST_FILES['fichier']['type'];
$fsize = $HTTP_POST_FILES['fichier']['size'];
$ftmp = $HTTP_POST_FILES['fichier']['tmp_name'];
// Diverses test afin de savoir si :
// Le format de fichier correspond à notre tableau array
if(!in_array($ftype, $allowed_types)){$error = 1;}
// La taille du fichier n'est pas dépassée
if($fize > $MAX_FILE_SIZE){$error = 2;}
// Le fichier n'existe pas déjÃ
if(file_exists($folder."m_".$fname)){$error = 3;}
// Si tout va bien, c'est bien déroulé
if(copy($ftmp,''.$folder.''.$fname.'')) {$error = 0;}
// Switch servant simplement à la gestion des erreures
switch($error){
case'0':
echo("Fichier correctement envoyé.");
break;
case'1':
echo("Format de fichier incorrecte.");
break;
case'2':
echo("Fichier trop volumineux.");
break;
case'3':
echo("Fichier déjà existant.");
break;
}
?>
Je tiens à préciser trois choses très importante :
- Ce code a été écris de la manière la plus simple et la plus accessible à tous.
- Ce n'est en rien une façon sécurisée, elle est juste fonctionnelle.
- Elle fonctionne chez presque tout les hébérgeurs, mais verifier le cache (2mo je crois, selon la config php ini)
