Upload d'images par formulaire php, en table

Résolu/Fermé
Liteulbob Messages postés 37 Date d'inscription vendredi 1 février 2008 Statut Membre Dernière intervention 7 août 2008 - 1 févr. 2008 à 10:03
Liteulbob Messages postés 37 Date d'inscription vendredi 1 février 2008 Statut Membre Dernière intervention 7 août 2008 - 1 févr. 2008 à 20:05
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 ;-)
A voir également:

3 réponses

Liteulbob Messages postés 37 Date d'inscription vendredi 1 février 2008 Statut Membre Dernière intervention 7 août 2008 2
1 févr. 2008 à 20:05
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
bbar Messages postés 436 Date d'inscription mercredi 27 septembre 2006 Statut Membre Dernière intervention 31 octobre 2008 140
1 févr. 2008 à 17:10
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
0
Liteulbob Messages postés 37 Date d'inscription vendredi 1 février 2008 Statut Membre Dernière intervention 7 août 2008 2
1 févr. 2008 à 19:50
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 :-(
0