Upload d'image et copie pour redimensionnement
Résolu
Tarble
Messages postés
592
Date d'inscription
Statut
Membre
Dernière intervention
-
Tarble Messages postés 592 Date d'inscription Statut Membre Dernière intervention -
Tarble Messages postés 592 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je fais un test sur l'upload d'images. Ca marche nickel sauf quand je veux réutiliser la même image uploadée pour la redimensionner plusieurs fois:
Aucun message d'erreur mais seule l'image A est enregistrée. Avez vous une idée de quoi faire pour faire 3 images et pas une seule.
Merci bien :)
je fais un test sur l'upload d'images. Ca marche nickel sauf quand je veux réutiliser la même image uploadée pour la redimensionner plusieurs fois:
if(isset($_FILES['image']) && $_FILES['image']['error']==0) { if ($_FILES['image']['size']<=10000000) { $infosfichier = pathinfo($_FILES['image']['name']); $extension_upload = $infosfichier['extension']; $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png'); if (in_array($extension_upload, $extensions_autorisees)) { if($infosfichier['extension']=="jpg" || $infosfichier['extension']=="jpeg") { $source = imagecreatefromjpeg($_FILES['image']['tmp_name']); } elseif($infosfichier['extension']=="png") { $source = imagecreatefrompng($_FILES['image']['tmp_name']); } elseif($infosfichier['extension']=="gif") { $source = imagecreatefromgif($_FILES['image']['tmp_name']); } else { echo "Erreur lors de la convertion de votre image."; return false; } $taille_A = imagecreatetruecolor(300, 420); $taille_B = imagecreatetruecolor(200, 280); $taille_C = imagecreatetruecolor(150, 210); $largeur_source = imagesx($source); $hauteur_source = imagesy($source); $largeur_taille = imagesx($taille_A); $hauteur_taille = imagesy($taille_A); imagecopyresampled($taille_A, $source, 0, 0, 0, 0, $largeur_taille, $hauteur_taille, $largeur_source, $hauteur_source); imagejpeg($taille_A, $_FILES['image']['tmp_name'], 80); move_uploaded_file($_FILES['image']['tmp_name'], '../../img/cards/1-A.jpg'); $largeur_source = imagesx($source); $hauteur_source = imagesy($source); $largeur_taille = imagesx($taille_B); $hauteur_taille = imagesy($taille_B); imagecopyresampled($taille_B, $source, 0, 0, 0, 0, $largeur_taille, $hauteur_taille, $largeur_source, $hauteur_source); imagejpeg($taille_B, $_FILES['image']['tmp_name'], 80); move_uploaded_file($_FILES['image']['tmp_name'], '../../img/cards/1-B.jpg'); $largeur_source = imagesx($source); $hauteur_source = imagesy($source); $largeur_taille = imagesx($taille_C); $hauteur_taille = imagesy($taille_C); imagecopyresampled($taille_C, $source, 0, 0, 0, 0, $largeur_taille, $hauteur_taille, $largeur_source, $hauteur_source); imagejpeg($taille_C, $_FILES['image']['tmp_name'], 80); move_uploaded_file($_FILES['image']['tmp_name'], '../../img/cards/1-C.jpg'); echo "Votre image à bien été uploadée."; } } else { echo "Votre image est trop lourde. Veuillez en uploader une de moins de 200ko.<br /><a href=\"index.php?id=".$_POST['id']."\">Retour</a>"; } } else { echo "Erreur, veuillez réuploader l'image.<br /><a href=\"index.php?id=".$_POST['id']."\">Retour</a>"; }
Aucun message d'erreur mais seule l'image A est enregistrée. Avez vous une idée de quoi faire pour faire 3 images et pas une seule.
Merci bien :)
A voir également:
- Upload d'image et copie pour redimensionnement
- Copie cachée - Guide
- Copie écran samsung - Guide
- Copie disque dur - Guide
- Image iso - Guide
- Upload video youtube - Télécharger - Diffusion
1 réponse
Salut,
Le problème vient peut-être du fait que tu déplace l'image source via l'instruction move_uploaded_file juste après le premier redimensionnement, du coup les redimensionnements suivants ne fonctionne pas à cause de l'absence de l'image source.
Essaye d'utiliser un autre fichier temporaire pour la création de l'image redimensionnée (imagejpeg), par exemple :
Bonne journée,
Le problème vient peut-être du fait que tu déplace l'image source via l'instruction move_uploaded_file juste après le premier redimensionnement, du coup les redimensionnements suivants ne fonctionne pas à cause de l'absence de l'image source.
Essaye d'utiliser un autre fichier temporaire pour la création de l'image redimensionnée (imagejpeg), par exemple :
// on crée l'image redimensionnée dans le fichier ../../img/cards/1-A.jpg imagejpeg($taille_A, '../../img/cards/1-A.jpg', 80); // donc pas besoin de déplacer l'image uploadé, on commente l'instruction move_uploaded_file //move_uploaded_file($_FILES['image']['tmp_name'], '../../img/cards/1-A.jpg');
Bonne journée,
Tarble
Messages postés
592
Date d'inscription
Statut
Membre
Dernière intervention
103
je te remmercie