script php d'upload

script php d'upload

Messagede quentinmontana15 le Mar 17 Juin 2008 18:11

Interêt

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)

quentinmontana15
 

Retourner vers Languages du web

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

cron