bonjour,
je fais un système de gestion pour un site de voitures d'occasions.
au sujet des images, je veux une vignette (200px) obligatoire et entre 1 et 10 images (600px) facultatives.
le fragment de mon formulaire (exemple avec 3 images) est comme ceci
le fragment de mon code Php est comme ceci:
je traite d'abord la version thumb et ensuite je fais une boucle qui est interrompue dès qu'un fichier n'a pas été renseigné.
donc si les 3 images sont renseignées dans le formulaire, je m'attends à trouver 4 fichiers:
par exemple (avec $next_id=25)
/occasions-img/25_thumb_fichier1.jpg
/occasions-img/25_fichier1.jpg
/occasions-img/25_fichier2.jpg
/occasions-img/25_fichier3.jpg
le problème c'est que je n'ai pas le fichier taille normale de la première image (/occasions-img/25_fichier1.jpg), je n'obtiens que la version thumb et les 2 autres images.
on dirait que le move_uploaded_file ne marche qu'une fois sur le fichier thumb, ou alors il y a un truc qui m'échappe.
$next_id est le prochain index dispo dans la table
redimensionner() est une fonction qui retaille l'image
Modifié par lionel_css3 (21 Aug 2013 - 09:12)
je fais un système de gestion pour un site de voitures d'occasions.
au sujet des images, je veux une vignette (200px) obligatoire et entre 1 et 10 images (600px) facultatives.
le fragment de mon formulaire (exemple avec 3 images) est comme ceci
<tr class="trOdd" valign="baseline">
<td>Image 1:</td>
<td colspan="2"><input name="image1" type="file" id="image1" value="image1" size="60" /></td>
</tr>
<tr class="trEven" valign="baseline">
<td>Image 2:</td>
<td colspan="2"><input name="image2" type="file" id="image2" value="image2" size="60" /></td>
</tr>
<tr class="trOdd" valign="baseline">
<td>Image 3:</td>
<td colspan="2"><input name="image3" type="file" id="image3" value="image3" size="60" /></td>
</tr>
le fragment de mon code Php est comme ceci:
je traite d'abord la version thumb et ensuite je fais une boucle qui est interrompue dès qu'un fichier n'a pas été renseigné.
//traitement de la vignette thumbnail, table vehicules
$thumb = "../occasions-img/" . $next_id . "_tumb_" . $_FILES['image1']['name'];
move_uploaded_file ($_FILES['image1']['tmp_name'], $thumb);
$newWidth = 200;
redimensionner($thumb, $newWidth, "W", 80, $thumb);
//traitement des images taille 600px, table images
$nb_images = 3;
for ($i=1; $i <= 3; $i++) {
$subName = "leFichier" . (string)$i;
$subName2 = "image" . (string)$i;
if (strlen($_FILES[$subName2]['name']) == 0) { // fichier non renseigné
$nb_images = $i - 1;
break;
} else {
$$subName = "../occasions-img/" . $next_id . "_" . $_FILES[$subName2]['name'];
move_uploaded_file ($_FILES[$subName2]['tmp_name'], $$subName);
$newWidth = 600;
redimensionner($$subName, $newWidth, "W", 80,$$subName);
}
} // fin du for
echo "il y a $nb_images images à insérer";
donc si les 3 images sont renseignées dans le formulaire, je m'attends à trouver 4 fichiers:
par exemple (avec $next_id=25)
/occasions-img/25_thumb_fichier1.jpg
/occasions-img/25_fichier1.jpg
/occasions-img/25_fichier2.jpg
/occasions-img/25_fichier3.jpg
le problème c'est que je n'ai pas le fichier taille normale de la première image (/occasions-img/25_fichier1.jpg), je n'obtiens que la version thumb et les 2 autres images.
on dirait que le move_uploaded_file ne marche qu'une fois sur le fichier thumb, ou alors il y a un truc qui m'échappe.
$next_id est le prochain index dispo dans la table
redimensionner() est une fonction qui retaille l'image
Modifié par lionel_css3 (21 Aug 2013 - 09:12)