UPLOAD MULTIPLE

Petit nouveau ! | 3 Messages

07 déc. 2006, 20:22

Bonjour à tous,
Voilà j'ai script qui me dit
Message error =4
droit sur dossier chmod =777 donc ok mais rien
formulaire :

Code : Tout sélectionner

<INPUT NAME="fichier[]" TYPE="file" id="fichier[]"> <br> <INPUT NAME="fichier[]" TYPE="file" id="fichier[]"> <br> <INPUT NAME="fichier[]" TYPE="file" id="fichier[]">
page upload :

Code : Tout sélectionner

foreach ($_FILES['fichier']['name'] as $key => $value) { $lien=$_POST['lien'][$key]; $fichier=$value[$key]; $size=$_FILES['fichier']['size'][$key]; $tmp=$_FILES['fichier']['tmp_name'][$key]; $type=$_FILES['fichier']['type'][$key]; $resultat=move_uploaded_file($tmp[$key],$lien[$key].$fichier[$key]); $error=$_FILES['fichier']['error'][$key]; } if($resultat) { echo "upload ok"; echo $error; } else { echo "erreur"; echo $error; }
j'ai fait print_r
et voila se que sa dit :

Code : Tout sélectionner

rray ( [fichier] => Array ( [name] => Array ( [0] => diddl9.gif [1] => diddl5.jpg [2] => ) [type] => Array ( [0] => image/gif [1] => image/jpeg [2] => ) [tmp_name] => Array ( [0] => /tmp/phphMi2qm [1] => /tmp/php5VVtnF [2] => ) [error] => Array ( [0] => 0 [1] => 0 [2] => 4 ) [size] => Array ( [0] => 3281 [1] => 4861 [2] => 0 ) ) )
merci pour votre aide

Eléphant du PHP | 134 Messages

08 déc. 2006, 11:01

quand tu écris
$fichier=$value[$key]; 
c'est comme si tu écrivais :
$_FILES['fichier']['name'][0][0];  // si $key = 0
le problème c'est que $_FILES['fichier']['name'][0] ne contient pas un tableau mais une valeur (diddl9.gif).

et quand tu écris
$fichier[$key] 
c'est comme si tu écrivait
$_FILES['fichier']['name'][0][0][0];  // si $key = 0
C'est donc normal que ton test sur
$resultat=move_uploaded_file($tmp[$key],$lien[$key].$fichier[$key]);
te retourne une erreur.

Je trouve que tu as mis des [$key] au petit bonheur. Le mieux serait de faire des echo de chaque variable pour vérifier ce que tu obtiens.