Upload d'images par formulaire php, en table

Résolu
Bonjour à tous,

Petit problème tout bête d'utilisation des tables pour enregistrer en même temps une vingtaine d'images par formulaire php.

Ca marche parfaitement pour une image avec :

echo '<input id="file" type="file" name="rapport_photos"><br />';

Puis
$rapport_photos = $_FILES['rapport_photos'];
if(isset($_FILES['rapport_photos']))
{ 
     $dossier = '../photos/photos_live/';
    if ( move_uploaded_file($_FILES['rapport_photos']['tmp_name'], $dossier . "concert".$ref."photo1") ) echo 'Upload effectué avec succès !';
    else echo 'Echec de l\'upload !';
}


Et je voudrais simplement automatiser l'enregistrement pour ma vingtaine de photos :

for ($i=1; $i<20; $i++) {
	echo '<input id="file" type="file" name="rapport_photos[]"><br />';
}


Puis

if(isset($_FILES['rapport_photos']))
{
	echo 'Table des photos existe ';
	$dossier = "../photos/photos_live";
	$n = 0;
	while ($_FILES[$n]['rapport_photos']) 
	{
		echo 'Numéro de la photo : '.$n.' ';
		if ( move_uploaded_file($_FILES[$n]['rapport_photos']['tmp_name'], $dossier . "concert".$ref."photo".$n) ) echo 'Upload effectué avec succès !';
		else echo 'Echec de l\'upload !';
		$n++;
	}
}


Mais l'ajout ne se fait pas. La phrase "table des photos existe" apparait car la table des images est bien recue, mais après, comment parcourir ce tableau ?
En faisant $_FILES[$n]['rapport_photos'] ? Ou $_FILES['rapport_photos'][$n] ? Ou meme $_FILES['rapport_photos[$n] '] ?

J'ai essayé ces trois possibilités mais ça ne marche pas :-(.

Si vous pouvez me dépanner, merci d'avance ;-)
Configuration: Windows XP
Firefox 2.0.0.11

3 réponses

  1. Bon problème résolu tout seul :

    il fallait écrire :

    while ($rapport_photos['name'][$n])


    Il fallait la valeur ['name'] ... je sais pas trop pourquoi mais ça marche (en fait c'ests logique, quand je prenais pas les images en tableau, je les appellais simplement par
    while ($rapport_photos['name'])

    mais j'y ai pas pensé ... trop fatigué ce soir :-(

    Bon merci quand meme ;-) au moins j'aurais évité une betise sur les id !
    1. salut,

      t'as quelque chose qui va pas dans le bloc ci dessous : tu ne peux pas avoir plus d'un élément d'une classe définie par id="..." dans une même page.
      for ($i=1; $i<20; $i++) {
      	echo '<input id="file" type="file" name="rapport_photos[]"><br />';
      }
      

      la solution consiste à utiliser plutôt class="...". Il faut également que tu modifies la déclaration de ta classe en .file au lieu de #file

      vois déjà ce que ça donne
      1. Arf ! Oui j'avais même pas fait gaffe, j'ai refait un bête copié coller d'une ligne au dessus.

        Enfin, hélas non, ça ne change pas, toujours le même non résultat : les lignes
        while ($_FILES[$n]['rapport_photos']) 
        ou
        while ($_FILES['rapport_photos'][$n]) 
        ou
        while ($_FILES['rapport_photos[$n]']) 


        ne donnent toujours rien :-(