<?php
// -------------------------------------- Script d'upload de fichers --------------------------------------
// Fichiers présentement supportés : jpg, jpeg, png, bmp, gif,
// Pour tout ajout de type de fichier supportés : modifiez le tableau $AUTH_EXT
// Pensez à commencer le second 'if' ci-dessous pour ne pas que ça bug
//
// Codé par : Shaihuld
// Commentaire ou Questions ? msn : Shaihuld.gmail.com
//
// Code CSS sournoisement volé à : ceacy http://www.codes-sources.com/auteurdetail.aspx?id=48873 ( PHPCS )
//
// -------------------------------------- Bon Courrage !! Shaihuld . --------------------------------------
?>
<html>
<head>
<style type="text/css">
.bloc {
width: 430px;
height: 120px;
background-color: #ffffff;
border-top:1px solid;
border-left:1px solid;
border-right:1px solid;
border-bottom:1px solid;
padding-top : 15px;
border-color: black;
margin-left: 150px;
margin-top: 150px;
text-align: center;
}
body {
background-color: #ffffff;
}
</style>
<title>Upload d'image ou de Fichiers.</title>
</head>
<body>
<?php
//Définition des variables :
$MAX_SIZE = 2097152; // Taille maximum du fichier (ici : 2MO)
$DESTINATION_FOLDER = "./images/"; // Fichier Destination - DOIT EXISTER !
$AUTH_EXT = array(".jpg", ".png", ".jpeg", ".bmp", ".gif",".swf",".rar",".zip"); // types de fichiers supportés
$RETURN_LINK = $_SERVER['HTTP_REFERER']; // Récupère la variable $_SERVER['HTTP_REFERER'] pour createReturnLink()
$chaine = code_aleatoire(); // Définit un code aléatoire pour l'image
$poidsFichier = 0; // On définit $poids fichier à 0 pour que le script ne plante pas si aucun fichier n'est choisi.
if(!empty($_FILES["file"]["name"])){
// si la variable $_FILES["file"]["name"] n'est pas vide
// cela veut dire que le server reçoit l'info qu'un fichier est
// envoyé, on définit donc les variables relative au fichier
$nomTemporaire = $_FILES["file"]["tmp_name"] ;
$nomFichier = $_FILES["file"]["name"] ; // nom du fichier uploadé
$typeFichier = $_FILES["file"]["type"] ;
$poidsFichier = $_FILES["file"]["size"] ; // poids en Octets
$poidsFichierK = $poidsFichier/1024; // Convertion du poids fichi0er d'Octets en KOctets
$poidsFichierK = sprintf("%.0f", $poidsFichierK);
$codeErreur = $_FILES["file"]["error"] ;
$extension = strrchr($nomFichier, "."); // on récupère l'extentions
$size = GetImageSize($_FILES["file"]["tmp_name"]);
$width = $size[0];
$height = $size[1];
$ext = $size[2]; // donne le type de fichier reçu
$nomReelFichier = $chaine."_".$nomFichier; // nom du fichier sur le server
}
// cette partie de code vérifie si l'extention du fichier est bien correcte vis à vis de sa signature
// si vous uploadez des fichiers autres que des gif, jpg, jpeg, bmp, png pensez à commenter ou supprimez ce if
// sinon ça ne marchera pas !
if ($ext xor 1 || $ext xor 2 || $ext xor 3){
echo $ext;
echo " AUcun fichier uploder <br />";
createReturnLink();
exit();
}
//--
// Définition des fonctions
// Création du raccouri de retour
function createReturnLink(){
global $RETURN_LINK;
echo "<a href='".$RETURN_LINK."'>Retour</a><br>";
}
// regarde si l'extension du fichier est dans le tableau AUTH_EXT
function isExtAuthorized($ext){
global $AUTH_EXT;
if(in_array($ext, $AUTH_EXT)){
return true;
}else{
return false;
}
}
// Génère un code aléatoire de 5 caractères pour charques images
function code_aleatoire()
{
$alphabet = 'abcdefghijklmnopqrstuvwxyz';
$alphabet .= '1234567890';
$chaine = '';
for($i=0;$i < 5;$i++)
{
$chaine .= substr($alphabet,rand()%(strlen($alphabet)),1);
}
return $chaine;
}
if($poidsFichier <> 0){
if($poidsFichier < $MAX_SIZE){
if(isExtAuthorized($extension)){
$uploadOk = move_uploaded_file($nomTemporaire, $DESTINATION_FOLDER.$chaine."_".$nomFichier);
if($uploadOk){
echo "<h1>Upload réussi !</h1><br />";
echo "Code de l'image : $chaine.<br />";
echo "Nom du fichier sur notre server : $nomReelFichier<br/>";
echo "Poids du Fichier : $poidsFichierK Ko<br />";
echo "<br />taille réel : $width x $height<br />";
echo "<h2>Liens :</h2>";
echo "Lien direct : http://freewebmaster.hostarea.org/images/$nomReelFichier<br />";
echo(createReturnLink());
}else{
echo "<div id=\"error\"><h2>ERREUR</h2>L'upload a échoué snif !</div><br />";
createReturnLink();
}
}else{
echo "<div id=\"error\"><h2>ERREUR</h2>Les fichiers avec l'extension $extension ne peuvent pas être uploadés snif !</div><br />";
createReturnLink();
}
}else{
$tailleKo = $MAX_SIZE / 1000;
echo "<div id=\"error\"><h2>ERREUR</h2>Vous ne pouvez pas uploader de fichiers dont la taille est supérieure à : $tailleKo Ko snif.</div><br />";
createReturnLink();
}
}else{
echo"<div id=\"error\"><h2>ERREUR</h2>Le fichier choisi est invalide (Taille nulle) snif !</div><br />";
createReturnLink();
}
?>
</body>
</html> |