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
|
if(move_uploaded_file($_FILES['photo']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
//calcul et redimension
//*********************
$fichierSource = $dossier ;
$fichierSource .= "/";
$fichierSource .= $fichier;
$fichierSource = $fichierSource;
//hauteur / largeur
$rapport = $infos_img[1] / $infos_img[0];
//Dimension de sortie
$hauteurDestination = $largeurDestination * $rapport;
//Réaloue la mémoire dont le serveur à besoin
//*******************************************
$memoryNeeded = round(($infos_img[0] * $infos_img[1] * $infos_img['bits'] * $infos_img['channels'] / 8 + Pow(2, 16)) * 1.65);
$mem_in_use= memory_get_usage();
//echo "Mémoire utilisée : $memoryNeeded contre $mem_in_use<br><br>";
$test = (integer) ini_get('memory_limit') + ceil(((memory_get_usage() + $memoryNeeded) - (integer) ini_get('memory_limit') * pow(1024, 2)) / pow(1024, 2)) + 1;
//solution calculée
if(function_exists('memory_get_usage') && memory_get_usage() + $memoryNeeded > (integer) ini_get('memory_limit') * pow(1024, 2))
ini_set('memory_limit', (integer) ini_get('memory_limit') + ceil(((memory_get_usage() + $memoryNeeded) - (integer) ini_get('memory_limit') * pow(1024, 2)) / pow(1024, 2)) + 2 . 'M');
//Création de l'image
//*******************
$source = imagecreatefromjpeg($fichierSource);
$largeurSource = imagesx($source);
$hauteurSource = imagesy($source);
if($largeurSource > $largeurDestination){
$im = ImageCreateTrueColor ($largeurDestination, $hauteurDestination)
or die ("Erreur lors de la création de l'image");
}
else{
$im = ImageCreateTrueColor ($infos_img[0], $infos_img[1])
or die ("Erreur lors de la création de l'image");
$largeurDestination = $infos_img[0];
$hauteurDestination = $infos_img[1];
}
//Redimentionnement
//*****************
ImageCopyResampled($im, $source, 0, 0, 0, 0, $largeurDestination, $hauteurDestination, $largeurSource, $hauteurSource);
//Création du fichier de sortie
//*****************************
$fh=fopen($fichierSource,'w');
fclose($fh);
ImageJpeg ($im,$fichierSource,$quality);
$size_file = filesize($fichierSource);
//Affiche le détail de l'image
echo '<u>Détails de l\'image finale sur le serveur</u><br>';
echo '<b>Fichier :</b> ' , $fichier, '<br />';
echo '<b>Taille :</b> ' , $size_file, ' Octets<br />';
echo '<b>Qualité :</b> ' , $quality, ' %<br />';
echo '<b>Largeur :</b> ' , $largeurDestination, ' px<br />';
echo '<b>Hauteur :</b> ' , $hauteurDestination, ' px<br />';
echo '<b>Itération de compression :</b> ', $iteration, ' x <br />';
echo '<hr />';
echo 'votre annonce a bien été enregistrée';
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !';
} |
Partager