Bonjour à tous,
J'ai un problème pour recalculer la taille d'une image si elle dépasse 200*200 en upload en PHP.
Je n'arrive pas à faire fonctionner la commande imagecopyresized en cas d'image trop grande :
Voici le bout de mon code :
<<<<<
if ($action=="envoi")
{
// test de la taille du fichier
if ($lefichier_size > $taille)
{
$lefichier_size_ko=round($lefichier_size/1000);
$taille_ko=round($taille/1000);
affiche_erreur("Téléchargement impossible car la taille du fichier ( $lefichier_size_ko ko ) est supérieure à $taille_ko Ko");
echo "<br><center><a href=\"chargement.php3?numero=".$num_enreg."\">Retour au chargement d'image</a></center><br>";
echo "<br><center><a href=\"annul.php3?numero=".$num_enreg."&action=annul\">Enregistrer l'annonce sans image</a></center><br>";
echo "<br><center><a href=\"annul.php3?numero=".$num_enreg."&action=sup\">annulation de l'annonce</a></center><br>";
exit();
}
// test de présence de fichier
if ($lefichier=="none")
{
affiche_erreur("Transfert impossible, le fichier n'est pas renseigné");
echo "<center><a href=\"chargement.php3?numero=".$num_enreg."\"> Retour </a></center>";
exit();
}
// test d'existance du fichier
// if (file_exists($destination.$lefichier_name))
// {
// echo "<center><h1>Désolé, le fichier existe déja</h1>";
// echo "<br><br><a href=\"chargement.php3\">Retour</a></center>";
// exit();
// }
// else
// {
if ($lefichier && $lefichier != "none")
{
// on récupère le type d'image
$type=GetImageSize($lefichier);
$type_image="";
if ($type[2]==1) { $type_image=".gif"; }
if ($type[2]==2) { $type_image=".jpg"; }
if ($type[2]==3) { $type_image=".png"; }
// on determine le nom du fichier final en prenant le N° annonce + type de fichier et en rajoutant a devant
$fichier_final="a".$num_enreg.$type_image;
{
if (is_uploaded_file($lefichier))
{
move_uploaded_file($lefichier,"$destination$fichier_final");
{
// Le fichier
$ima = "http://monsite/".$destination.$fichier_final;
echo "<IMG SRC=".$ima.">";
// Définition de la largeur et de la hauteur maximale
$width = 200;
$height = 200;
// Cacul des nouvelles dimensions
list($width_orig, $height_orig) = getimagesize($ima);
$ratio_orig = $width_orig/$height_orig;
if ($width/$height > $ratio_orig) {
$width = $height*$ratio_orig;
} else {
$height = $width/$ratio_orig;
}
// Redimensionnement
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($ima);
imagecopyresized($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
//
https://www.php.net/manual/fr/function.imagecopyresampled.php
// http://www.webmasterworld.com/forum88/11242.htm
// Affichage
//imagejpeg($image_p, null, 100);
echo "<IMG SRC=".$image_p.">"; //Test de la création de l'image modifiée
}
echo "$destination$fichier_final $ima";
}
else
{
echo "Attaque potentielle par fichier téléchargé : fichier '$lefichier'.";
}
}
>>>>>>>
Cela me renvoie cette erreur pour l'image « resizée » :
Warning: imagecopyresized(): supplied argument is not a valid Image resource in /mnt/169/sdc/8/f/monsite /chargement.php3 on line 91
Merci
Bonne fin de journée
Nagib