Je travaille sur un projet perso de galerie photos alimentée par des utilisateurs, après connexion à leur compte, ceux-ci peuvent uploader des photos (que j'afficherais ensuite dans la galerie), je précise que je suis grande débutante, c'est mon 1er projet
J'ai un souci avec l'upload qui fonctionne de manière aléatoire (au niveau de la création de imagecreatefromjpeg), je ne comprends pas l'erreur ni pourquoi car cela fonctionne dans un premier temps, puis j'ai une erreur (cela peut-être au bout de 3 images uploadées ou 5 par exemple)
Si quelqu'un veut bien m'aider, ce serait gentil car j'ai beau chercher, je ne comprends pas... Merci par avance pour votre aide !
Voici mon message d'erreur : https://ibb.co/R3xppBw
Et mon code :
// => Upload des photos de l'utilisateur
// 1 - Vérifie si fichier envoyé
if(isset($_FILES['userfile']))
{
$folder = 'upload/';
$file = basename($_FILES['userfile']['name']);
$max_size = 5000000; // à adapter avant mise en ligne
$extensions_list = ['jpg', 'jpeg', 'png'];
$type_mime_list = ['image/jpg', 'image/jpeg', 'image/png'];
// 2 - Vérifie l'extension du fichier
$file_extension = strtolower(pathinfo($file, PATHINFO_EXTENSION));
if(in_array($file_extension, $extensions_list)) {
// 3 - Vérifie le type MIME du fichier
$file = $_FILES['userfile']['tmp_name'];
$file_mime_type = mime_content_type($file);
if(in_array($file_mime_type, $type_mime_list)) {
// 4 - Vérifie la taille du fichier
if($_FILES['userfile']['size'] > $max_size) {
$alert = "Le fichier est trop gros";
} else {
move_uploaded_file($_FILES['userfile']['tmp_name'], 'upload/'.$_FILES['userfile']['name']);
}
} else {
$alert = "Le type de fichier n'est pas autorisé";
}
} else {
$alert = "Extension non autorisée";
}
$alert = "Votre fichier a bien été envoyé";
}
// Redimensionnement du fichier : 1200 x 800 max
// création copie d'image à redimensionner
$selected_image = imagecreatefromjpeg($_FILES['userfile']['tmp_name']);
// définition largeur max
$file_width_max = 1200;
// récupération dimension d'image de départ
$selected_image_size = getimagesize($_FILES['userfile']['tmp_name']);
// calcul du pourcentage de réduction
$reduction = (($file_width_max * 100) / $selected_image_size[0]);
// calcul de la hauteur en appliquant le pourcentage
$new_height = (($selected_image_size[1] * $reduction) / 100);
// Création de la nouvelle image
$new_image = imagecreatetruecolor($file_width_max, $new_height) or die ("erreur");
// rééchantillonnage de la nouvelle image
imagecopyresampled($new_image, $selected_image, 0, 0, 0, 0, $file_width_max, $new_height, $selected_image_size[0], $selected_image_size[1]);
// destruction de la copie d'image
imagedestroy($selected_image);
// Enregistrement de la nouvelle image
$selected_image_name = explode('.', $file);
// modifie nom retrouvé
$exploit_image_name = time();
// enregistre la nouvelle image dans le répertoire
imagejpeg($new_image, 'upload/'.$exploit_image_name.'.'.$file_extension, 100);
}