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 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
| <?php
function upload($maxsize, $photo)
{
$compte_erreur=0;
$extensions_valides = array('jpg', 'png', 'jpeg');
// $nom_image = md5(uniqid(rand(), true));
$nom_image = $_FILES[$photo]['name'];
if (is_file('../images/temp/'.$_FILES[$photo]['name'])) // On vérifie que le nom n'existe pas dans le répertoire
{
$nom_image = '_'.$_FILES[$photo]['name']; // S'il existe déjà on lui attribue un préfixe pour le différencier
}
// On contrôle que le fichier a bien été uploadé.
if ($_FILES[$photo]['error'] > 0)
{
$message = 'Erreur lors du transfert du fichier';
$compte_erreur++;
// On contrôle si l'erreur vient de la taille du fichier uploadé.
if ($_FILES[$photo]['size'] > $maxsize)
{
$message = 'Le fichier est trop gros';
$compte_erreur++;
}
}
else // Si le transfert a réussi
{
// On récupère l'extension du fichier pour comparaison
$extension_upload = strtolower(substr(strrchr($_FILES[$photo]['name'], '.'),1));
// On compare l'extension récupérée avec les extensions de notre array et si le fichier est valide:
if (in_array($extension_upload,$extensions_valides))
{
// On récupère la taille de l'image uploadée.
$image_sizes = getimagesize($_FILES[$photo]['tmp_name']);
$parcours= "../images/temp/$nom_image";
$transfert= move_uploaded_file($_FILES[$photo]['tmp_name'],$parcours); // Image originale
if ($transfert)
{
if ($slider=='1') // Création d'une image pour le slider 1423*600
{
if ($extension_upload=='jpg' OR $extension_upload=='jpeg')
{
$slider= imagecreatefromjpeg($parcours);
}
else
{
$slider= imagecreatefrompng($parcours);
}
$largeur_origine= $image_sizes[0];
$hauteur_origine= $image_sizes[1];
$largeur_slider= 1423;
$hauteur_slider= 600;
$copie_slider = imagecreatetruecolor(1423, $hauteur_slider);
$nom_slider_image='slider_'.$nom_image;
imagecopyresampled($copie_slider, $slider, 0,0,0,0, $largeur_slider, $hauteur_slider, $largeur_origine, $hauteur_origine);
imagejpeg($copie_slider, "../images/temp/$nom_slider_image",100);
}
else // Création d'une grande image 620*380
{
if ($extension_upload=='jpg' OR $extension_upload=='jpeg')
{
$slider= imagecreatefromjpeg($parcours);
}
else
{
$slider= imagecreatefrompng($parcours);
}
$largeur_origine= $image_sizes[0];
$hauteur_origine= $image_sizes[1];
$largeur_slider= 620;
$coeff= 620 / $largeur_origine;
$hauteur_temp= $hauteur_origine*$coeff;
$copie_slider = imagecreatetruecolor(620, $hauteur_temp);
$nom_slider_image='gde_'.$nom_image;
imagecopyresampled($copie_slider, $slider, 0,0,0,0, $largeur_slider, $hauteur_temp, $largeur_origine, $hauteur_origine);
//imagecopy($copie_slider , $slider ,0 ,0 , 0, 0, $largeur_slider , $hauteur_slider);
//imagecopyresampled($copie_slider, $slider, 0,0,0,0, $largeur_slider, $hauteur_slider, $largeur_origine, $hauteur_origine);
imagejpeg($copie_slider, "../images/temp/$nom_slider_image",100);
}
// création d'une image aux bonnes dimensions. 300*295
if ($extension_upload=='jpg' OR $extension_upload=='jpeg')
{
$nouvelle_image= imagecreatefromjpeg($parcours);
}
else
{
$nouvelle_image= imagecreatefrompng($parcours);
}
$copie_new_image = imagecreatetruecolor(300, 295);
$largeur_source1= $image_sizes[0];
$hauteur_source1= $image_sizes[1];
$largeur_destination= 300;
$hauteur_destination= 295;
$nom_pt_image='pt_'.$nom_image;
imagecopyresampled($copie_new_image, $nouvelle_image, 0,0,0,0, $largeur_destination, $hauteur_destination, $largeur_source1, $hauteur_source1);
imagejpeg($copie_new_image, "../images/temp/$nom_pt_image",100);
// Création de la miniature
if ($extension_upload=='jpg' OR $extension_upload=='jpeg')
{
$source= imagecreatefromjpeg($parcours);
}
else
{
$source= imagecreatefrompng($parcours);
}
$destination1= imagecreatetruecolor(120, 100);
$largeur_source= $image_sizes[0];
$hauteur_source= $image_sizes[1];
$largeur_destination1= 120;
$hauteur_destination1= 100;
$nom_miniature='thumb_'.$nom_image;
imagecopyresampled($destination1, $source, 0,0,0,0, $largeur_destination1, $hauteur_destination1, $largeur_source, $hauteur_source);
imagejpeg($destination1, "../images/temp/$nom_miniature",100);
$fichier_sup1= '../images/temp/'.$nom_image;
unlink("$fichier_sup1");
}
else
{
$message= 'Echec du transfert';
$compte_erreur++;
}
}
else // Si le fichier uploadé n'a pas une extension souhaité:
{
$message= 'Le format du fichier uploadé n\'est pas correct';
$compte_erreur++;
}
}
$retour= array();
$retour['message']= $message;
$retour['compte_erreur']= $compte_erreur;
$retour['nom_pt_image']= $nom_pt_image;
$retour['nom_miniature']= $nom_miniature;
$retour['nom_slider']= $nom_slider_image;
return $retour;
} |
Partager