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 113 114 115 116 117 118
|
// on récupère les infos du fichier à uploader
$fichier_temp = $_FILES['fichier_upload_'.$nbr]['tmp_name'];
$fichier_nom = $_FILES['fichier_upload_'.$nbr]['name'];
// on défini les dimensions et le type du fichier
list($fichier_larg, $fichier_haut, $fichier_type, $fichier_attr)=getimagesize($fichier_temp);
// infos de contrôle du fichier
$fichier_poids_max = 2000000;
$fichier_h_max = 1224;
$fichier_l_max = 1632;
// dossier de destination
$fichier_dossier = "photo/";
// extension du fichier
$fichier_ext = substr($fichier_nom,strrpos( $fichier_nom, '.')+1);
// on renomme le fichier
$fichier_date = date("ymdhis");
$fichier_n_nom = $mb."_".$fichier_date."_".$fichier_nom;
// on vérifie s'il y a bien un fichier à uploader
if (!empty($fichier_temp) && is_uploaded_file($fichier_temp)) {
// on vérifie le poids du fichier
if (filesize($fichier_temp)<$fichier_poids_max) {
// types de fichiers autorises 1=gif / 2=jpg / 3=png
if (($fichier_type===1) || ($fichier_type===2) || ($fichier_type===3)) {
// on vérifie si l'image n'est pas trop grande
if (($fichier_larg<=$fichier_l_max) && ($fichier_haut<=$fichier_h_max)) {
// si le fichier est ok, on l'upload sur le serveur
if (move_uploaded_file($fichier_temp, $fichier_dossier.$fichier_n_nom)) {
// on donne un acces total sur le fichier
//chmod ($fichier_dossier.$fichier_n_nom, 0777);
/***********************
création de la miniature
***********************/
// dimension maximale largeur et hauteur comprise
$taille_maxG = 550;
// si le fichier est plus grand que $taille_max on le miniaturise
if ($fichier_haut > $taille_maxG) {
$mini_hautG = $taille_maxG;
$mini_largG = $fichier_larg / ($fichier_haut / $taille_maxG);
// si le fichier est un .gif
if ($fichier_type === 1){
// definition de l'image dont on va faire une miniature
$fichier_sourceG = imagecreatefromgif($fichier_dossier.$fichier_n_nom);
// on prépare le fichier miniature qui accueillera l'image réduite
$fichier_reduitG = imagecreate($mini_largG, $mini_hautG);
// fond blanc pour l'image
$fond_blanc = imagecolorallocate($fichier_reduitG, 255, 255, 255);
// dimensions x et y à donner au fichier
$fichier_larg_redG = imagesx($fichier_reduitG);
$fichier_haut_redG = imagesy($fichier_reduitG);
// on rajoute un mini_ defant le nom du fichier
$nom_fichier_reduitG = $fichier_n_nom;
// on redimensionne l'image de base dans le fichier $fichier_reduit
imagecopyresampled($fichier_reduitG, $fichier_sourceG, 0, 0, 0, 0, $fichier_larg_redG, $fichier_haut_redG, $fichier_larg, $fichier_haut);
// on rend transparent le fond blanc
imagecolortransparent($fichier_reduitG, $fond_blanc);
// crée le fichier réduit définitif
imagegif($fichier_reduitG, $fichier_dossier.$nom_fichier_reduitG);
// on donne un acces total sur le fichier
chmod($fichier_dossier.$nom_fichier_reduitG, 0777);}
// si le fichier est un .jpg / .jpeg
if ($fichier_type===2){
// définition de la qualité
$qualite=80;
// definition de l'image dont on va faire une miniature
$fichier_sourceG = imagecreatefromjpeg($fichier_dossier.$fichier_n_nom);
// on prépare le fichier miniature qui accueillera l'image réduite
$fichier_reduitG = imagecreatetruecolor($mini_largG, $mini_hautG);
// dimensions x et y à donner au fichier
$fichier_larg_redG = imagesx($fichier_reduitG);
$fichier_haut_redG = imagesy($fichier_reduitG);
// on rajoute un mini_ defant le nom du fichier
$nom_fichier_reduitG = $fichier_n_nom;
// on redimensionne l'image de base dans le fichier $fichier_reduit
imagecopyresampled($fichier_reduitG, $fichier_sourceG, 0, 0, 0, 0, $fichier_larg_redG, $fichier_haut_redG, $fichier_larg, $fichier_haut);
// crée le fichier réduit définitif
imagejpeg($fichier_reduitG, $fichier_dossier.$nom_fichier_reduitG, $qualite);
// on donne un acces total sur le fichier
chmod($fichier_dossier.$nom_fichier_reduitG, 0777);}
// si le fichier est un .png
if ($fichier_type===3){
// definition de l'image dont on va faire une miniature
$fichier_sourceG = imagecreatefrompng($fichier_dossier.$fichier_n_nom);
// on prépare le fichier miniature qui accueillera l'image réduite
$fichier_reduitG = imagecreatetruecolor($mini_largG, $mini_hautG);
// dimensions x et y à donner au fichier
$fichier_larg_redG = imagesx($fichier_reduitG);
$fichier_haut_redG = imagesy($fichier_reduitG);
// on rajoute un mini_ defant le nom du fichier
$nom_fichier_reduitG = $fichier_n_nom;
// on redimensionne l'image de base dans le fichier $fichier_reduit
imagecopyresampled($fichier_reduitG, $fichier_sourceG, 0, 0, 0, 0, $fichier_larg_redG, $fichier_haut_redG, $fichier_larg, $fichier_haut);
// crée le fichier réduit définitif
imagepng($fichier_reduitG, $fichier_dossier.$nom_fichier_reduitG);
// on donne un acces total sur le fichier
chmod($fichier_dossier.$nom_fichier_reduitG, 0777);}
}
else {$nom_fichier_reduitG = $fichier_n_nom;}
etc..... |
Partager