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 105 106 107 108 109 110 111 112
| $taille_ko = 4000;//400 ko
$taille_max = $taille_ko*1024;//taille en octets
$dest_dossier = 'admin/img_lib_orig/';
$height=100;
$width=150;
//=========================================================
// TESTS
//=========================================================
if (isset($_FILES['fichier']))
{
foreach ($_FILES['fichier']['name'] as $key => $value)
{
$fichier=$value;//nom reel de l'image (juse le nom, pas le chemin)
$size=$_FILES['fichier']['size'][$key]; //poids de l'image en octets
$tmp=$_FILES['fichier']['tmp_name'][$key];//nom complet (chemin complet)temporaire de l'image (sur le serveur)
$type=$_FILES['fichier']['type'][$key];//type de l'image
$name=$_FILES['fichier']['name'][$key];
if (!empty($fichier)) //============ SI CHAMP REMPLI ===========================================================
{
$array= getimagesize($tmp);//getimagesize reprend le type en paramètre 3. Le type 2 correspond au JPEG
$type= $array[2];
if ($type==1 OR $type==2)//============ SI TYPE OK =========================================================
{
if((substr($name,-3) == "jpg" )OR (substr($name,-3) == "gif"))//============ SI EXTENSION OK ============
{
if((file_exists($tmp))and($size < $taille_max))//============ SI TAILLE OK ==========================
{
$dest_fichier = basename($name);
$dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// un chtit regex pour remplacer tous ce qui n'est ni chiffre ni lettre par "_"
$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
//$dest_fichier = str_replace(" ","",$dest_fichier);
// pour ne pas écraser un fichier existant
while(file_exists($dest_dossier . $dest_fichier))
{
//echo 'image EXISTE';
$dest_fichier = rand().$dest_fichier;
}
$taille= getimagesize($tmp);
$L=$taille[0];
$H=$taille[1];
$newL=900;
$newH=ceil(($H/$L)*$newL);
//echo $newL.'x'.$newH;
if(move_uploaded_file($tmp,$dest_dossier.$dest_fichier)) //Met l'image de taille normale dans $dest_dossier . $dest_fichier
{
//================ CREATION NORMALE =======================================================
$source = imagecreatefromjpeg("admin/img_lib_orig/".$dest_fichier.""); // La photo est la source
$destination = imagecreatetruecolor($newL,$newH); // On crée la miniature vide
// Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image
$largeur_source = imagesx($source);
$hauteur_source = imagesy($source);
$largeur_destination = imagesx($destination);
$hauteur_destination = imagesy($destination);
// On crée la miniature
imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
imagejpeg($destination, "admin/tempresize/".$dest_fichier."");//destination de la miniature
rename("admin/tempresize/".$dest_fichier."","admin/img_lib_orig/".$dest_fichier."");
//================ CREATION MINIATURE =======================================================
$source = imagecreatefromjpeg("admin/img_lib_orig/".$dest_fichier.""); // La photo est la source
$destination = imagecreatetruecolor($width,$height); // On crée la miniature vide
// Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image
$largeur_source = imagesx($source);
$hauteur_source = imagesy($source);
$largeur_destination = imagesx($destination);
$hauteur_destination = imagesy($destination);
// On crée la miniature
imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
imagejpeg($destination, "admin/img_lib_thumbs/".$dest_fichier."");//destination de la miniature
//========================================================================
// ENREGISTREMENT CHEMIN + nom IMAGE UPLOADEES DANS BDD ALBUM NON CLASSEES !!!
//========================================================================
$sql = "INSERT INTO image (name_image,id_album,path_image_thumbs,path_image) VALUES ('$dest_fichier','1','admin/img_lib_thumbs/".$dest_fichier."','admin/img_lib_orig/".$dest_fichier."')";
mysql_query($sql) or die(mysql_error());
}
else
{
//echo "Impossible d'uploader le fichier.<br />Veuillez vérifier que le dossier ".$dest_dossier." existe avec un chmod 755 (ou 777).";
}
}
}
}
}
}
} |
Partager