1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
|
<?
// Taille maximum
$MAX_FILE_SIZE = 100;
// Dossier de destination du fichier
$folder = "upload/";
// Tableau array des différents types
$allowed_types = array(
"image/bmp",
"image/gif",
"image/pjpeg",
"image/jpeg",
"image/jpg",
"image/png",
"image/tiff",
"application/postscript",
"image/psd",
"application/x-shockwave-flash",
"multipart/x-zip",
"application/msword",
"application/excel",
"application/vnd.ms-powerpoint",
"application/pdf",
"text/html",
"text/css",
"audio/aiff",
"audio/mpeg",
"audio/wav",
"audio/x-ms-wma",
"video/msvideo",
"video/avi",
"video/mpeg",
"video/x-ms-wmv"
);
// Variables récupérées par méthode POST du formulaire
$fname = $_FILES['fichier']['name'];
$ftype = $_FILES ['fichier']['type'];
$fsize = $_FILES ['fichier']['size'];
$ftmp = $_FILES ['fichier']['tmp_name'];
$extension_upload = substr( strrchr($_FILES['fichier']['name'], '.') ,1);
// Divers tests 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
else if($fsize > $MAX_FILE_SIZE){$error = 2;}
else
{
// Si le fichier existe déjà
if (file_exists('./upload/'.$fname))
{
//Si le fichier existe, on rajoute dans son nom, la date et l'heure pour le différencier de la première (comme ça, on est sûr de ne pas avoir 2 images avec le même nom)
$nom_final= preg_replace("`.$extension_upload`is",date("ldSFY-h.i.s-A").".$extension_upload",$fname);
}
else {
$nom_final=$fname; //l'image n'existe pas on garde le même nom
}
//on déplace l'image dans le répertoire final
if (move_uploaded_file($ftmp,'./upload/'.$nom_final)) {$error = 0;}
else
{$error = 3;}
}
// Messages avec apostrophe
$m1 = ' à l\'emplacement suivant : ';
$m2 = htmlspecialchars($m1);
// Switch servant simplement à la gestion des erreures
switch($error){
case'0':
echo("<h3>Fichier correctement envoyé !</h3>");
echo ('<br/>');
echo ('<br/>');
//L'image apparait après validation avec son nom, son emplacement, son type et son poids
echo '<img src="./upload/'.$nom_final.'" border="0" />';
echo "<br/><br/>Le nom dorigine du fichier est '" . $fname . "'.<br/>";
echo "Le fichier a été téléchargé avec succès" . $m2 . '/upload/'.$nom_final . "'<br/>";
echo "Le type du fichier est '" . $ftype . "'.<br/>";
echo "La taille du fichier est de '" . $fsize . " octets'.<br/>";
echo '<a href="javascript:history.back();" align="center">Retour</a>';
break;
// Les messages des erreurs
case'1':
echo("Format de fichier incorrecte.<br/>");
echo '<a href="javascript:history.back();" align="center">Retour</a>';
break;
case'2':
echo("Fichier trop volumineux.<br/>");
echo '<a href="javascript:history.back();" align="center">Retour</a>';
break;
case'3':
echo("Erreur lors du déplacement du fichier.<br/>");
echo '<a href="javascript:history.back();" align="center">Retour</a>';
break;
}
?> |
Partager