Bonjour, Hello à tutti,
J'upload 5 images au format variable (jpg, jpeg png, ou webp) dans le dossier temp/$pseudo.
Je fais ça avec croppie.js, afin qu'elles aient toutes le même format final (740x1080px), et que l'utilisateur puisse zoomer et recadrer si il le souhaite.
Le 1er soucis, c'est que le poids des images uploadées est multiplié par 5 (base64). Je n'ai pas trouvé comment empêcher ça, donc j'ai opté pour la fonction compress, qui me retourne des images à un poids tout à fait correct.
Problème : alors que mes 5 images (img_1.jpg, img_2.jpg, etc) se trouvent dans le dossier temp/$pseudo,
lorsque je souhaite les compresser, puis les changer de dossier, et enregistrer le chemin en base, seulement les 2 premières images sont traitées, et les 3 autres sont supprimées. Je n'arrive pas à comprendre pourquoi.
En gros, $img_3_path m'indique : img_3 (peut importe son extension) n'existe pas, alors que si ! img_3.jpg est bien dans le dossier temp/$pseudo.
if (file_exists($img_3_path )) { } else { echo "<script>alert('".$img_3_path." n y est pas');</script>"; }
Merci pour vos lights
Edité
Modifié par Vape6 (19 Mar 2022 - 17:48)
J'upload 5 images au format variable (jpg, jpeg png, ou webp) dans le dossier temp/$pseudo.
Je fais ça avec croppie.js, afin qu'elles aient toutes le même format final (740x1080px), et que l'utilisateur puisse zoomer et recadrer si il le souhaite.
Le 1er soucis, c'est que le poids des images uploadées est multiplié par 5 (base64). Je n'ai pas trouvé comment empêcher ça, donc j'ai opté pour la fonction compress, qui me retourne des images à un poids tout à fait correct.
Problème : alors que mes 5 images (img_1.jpg, img_2.jpg, etc) se trouvent dans le dossier temp/$pseudo,
lorsque je souhaite les compresser, puis les changer de dossier, et enregistrer le chemin en base, seulement les 2 premières images sont traitées, et les 3 autres sont supprimées. Je n'arrive pas à comprendre pourquoi.
En gros, $img_3_path m'indique : img_3 (peut importe son extension) n'existe pas, alors que si ! img_3.jpg est bien dans le dossier temp/$pseudo.
if (file_exists($img_3_path )) { } else { echo "<script>alert('".$img_3_path." n y est pas');</script>"; }
Merci pour vos lights
Edité
<?php
function compress($source, $destination, $quality)
{
$info = getimagesize($source); //print_r($info);
if ($info['mime'] == 'image/jpeg') $image = imagecreatefromjpeg($source);
elseif ($info['mime'] == 'image/jpg') $image = imagecreatefromjpeg($source);
elseif ($info['mime'] == 'image/webp') $image = imagecreatefromwebp($source);
elseif ($info['mime'] == 'image/png') $image = imagecreatefrompng($source);
imagejpeg($image, $destination, $quality);
return $destination;
}
$imgs_1_paths = array("temp/".$pseudo."/img_1.jpg", "temp/".$pseudo."/img_1.jpeg", "temp/".$pseudo."/img_1.webp", "temp/".$pseudo."/img_1.png");
$imgs_2_paths = array("temp/".$pseudo."/img_2.jpg", "temp/".$pseudo."/img_2.jpeg", "temp/".$pseudo."/img_2.webp", "temp/".$pseudo."/img_2.png");
$imgs_3_paths = array("temp/".$pseudo."/img_3.jpg", "temp/".$pseudo."/img_3.jpeg", "temp/".$pseudo."/img_3.webp", "temp/".$pseudo."/img_3.png");
$imgs_4_paths = array("temp/".$pseudo."/img_4.jpg", "temp/".$pseudo."/img_4.jpeg", "temp/".$pseudo."/img_4.webp", "temp/".$pseudo."/img_4.png");
$imgs_5_paths = array("temp/".$pseudo."/img_5.jpg", "temp/".$pseudo."/img_5.jpeg", "temp/".$pseudo."/img_5.webp", "temp/".$pseudo."/img_5.png");
foreach($imgs_1_paths as $img_1_path)
{
$img_1 = substr($img_1_path, strrpos($img_1_path, '.')-5);
$ext = substr($img_1_path, strrpos($img_1_path, '.')+1);
$img_1_path = "temp/".$pseudo."/img_1.".$ext;
clearstatcache();
if (file_exists($img_1_path ))
{
$source_img = $img_1_path;
$titre_de_limage = $img_1.'_1.'.$ext;
$new_path = 'user_images/'.$titre_de_limage;
$img_compressed = compress($source_img, $new_path, 90); // ça enregistre l'image compressée dans le dossier de destination (new path)
$q1 = $con->prepare("UPDATE users SET img = ?, user_image_1 = ? WHERE user_id = ?");
$q1->bind_param("ssi", $new_path, $titre_de_limage, $user_id);
$q1->execute();
unlink($img_1_path);
}
}
foreach($imgs_2_paths as $img_2_path)
{
$img_2 = substr($img_2_path, strrpos($img_2_path, '.')-5);
$ext = substr($img_2_path, strrpos($img_2_path, '.')+1);
$img_2_path = "temp/".$pseudo."/img_2.".$ext;
clearstatcache();
if (file_exists($img_2_path ))
{
$source_img = $img_2_path;
$titre_de_limage = $img_2.'_2.'.$ext;
$new_path_2 = 'user_images/'.$titre_de_limage;
$img_compressed = compress($source_img, $new_path_2, 90);
$q2 = $con->prepare("UPDATE users SET user_image_2 = ? WHERE user_id = ?");
$q2->bind_param("si", $new_path_2, $user_id);
$q2->execute();
unlink($img_2_path);
}
}
foreach($imgs_3_paths as $img_3_path)
{
$img_3 = substr($img_3_path, strrpos($img_3_path, '.')-5);
$ext = substr($img_3_path, strrpos($img_3_path, '.')+1);
$img_3_path = "temp/".$pseudo."/img_3.".$ext;
clearstatcache();
if (file_exists($img_3_path ))
{
$source_img = $img_3_path;
$titre_de_limage = $img_3.'_3.'.$ext;
$new_path_3 = 'user_images/'.$titre_de_limage;
$img_compressed = compress($source_img, $new_path_3, 90);
$q3 = $con->prepare("UPDATE users SET user_image_3 = ? WHERE user_id = ?");
$q3->bind_param("si", $new_path_3, $user_id);
$q3->execute();
unlink($img_3_path);
} else { echo "<script>alert('".$img_3_path." n y est pas');</script>"; }
}
foreach($imgs_4_paths as $img_4_path)
{
$img_4 = substr($img_4_path, strrpos($img_4_path, '.')-5);
$ext = substr($img_4_path, strrpos($img_4_path, '.')+1);
$img_4_path = "temp/".$pseudo."/img_4.".$ext;
clearstatcache();
if (file_exists($img_4_path ))
{
$source_img = $img_4_path;
$titre_de_limage = $img_4.'_4.'.$ext;
$new_path_4 = 'user_images/'.$titre_de_limage;
$img_compressed = compress($source_img, $new_path_4, 90);
$q4 = $con->prepare("UPDATE users SET user_image_4 = ? WHERE user_id = ?");
$q4->bind_param("si", $new_path_4, $user_id);
$q4->execute();
echo "<script>alert(' 4 : ". $new_path_4 ."');</script>";
// unlink($img_4_path);
}
}
foreach($imgs_5_paths as $img_5_path)
{
$img_5 = substr($img_5_path, strrpos($img_5_path, '.')-5);
$ext = substr($img_5_path, strrpos($img_5_path, '.')+1);
$img_5_path = "temp/".$pseudo."/img_5.".$ext;
clearstatcache();
if (file_exists($img_5_path ))
{
$source_img = $img_5_path;
$titre_de_limage = $img.'_5.'.$ext;
$new_path_5 = 'user_images/'.$titre_de_limage;
$img_compressed = compress($source_img, $new_path_5, 90); // ça enregistre l'image compressée dans le dossier de destination (new path)
$q5 = $con->prepare("UPDATE users SET user_image_5 = ? WHERE user_id = ?");
$q5->bind_param("si", $new_path_5, $user_id);
$q5->execute();
echo "<script>alert(' 5 : ". $new_path_5 ."');</script>";
// unlink($img_5_path);
}
}
Modifié par Vape6 (19 Mar 2022 - 17:48)