8722 sujets

Développement web côté serveur, CMS

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


        <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)