Upload d'image et copie pour redimensionnement
Résolu
Tarble
Messages postés
694
Statut
Membre
-
Tarble Messages postés 694 Statut Membre -
Tarble Messages postés 694 Statut Membre -
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
694
Statut
Membre
103
je te remmercie