Erreur avec foreach ...

Eléphant du PHP | 183 Messages

13 oct. 2006, 12:48

Bonjour

Jai un script d'upload de fichier multiple il marche tres bien mais pour cette page la jai une erreur et je ne vois pas d'ou elle peu venir ...

Code : Tout sélectionner

Warning: Invalid argument supplied for foreach() in c:\documents and settings\fab\bureau\site\lib\fsortie.php on line 70
et voici le code ...

Code : Tout sélectionner

foreach ($_FILES['imgfile']['tmp_name'] as $key => $value) { $file_tmp=$value; $file_type = $_FILES['imgfile']['type'][$key]; $file_name = $_FILES['imgfile']['name'][$key]; $file_size = $_FILES['imgfile']['size'][$key];
Si vous pouvez me donnez un coup de main :)

Merci
_________
Fabien

Mammouth du PHP | 19672 Messages

13 oct. 2006, 13:02

fais donc la chose suivante pour visualiser la structure de ton tableau, ça va sûrement être plus parlant :
<pre>
<?php
var_dump($_FILES);
?>
</pre>
Et ensuite vois comment corriger dans ton foreach().
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 183 Messages

13 oct. 2006, 16:21

Voila je l'est fait et ceci comme reponse ...

Code : Tout sélectionner

array(0) { }
_________
Fabien

Eléphant du PHP | 413 Messages

13 oct. 2006, 16:27

il te reste à trouver pourquoi $_FILES est vide.
là on n'a pas assez d'info pour t'aider...
--
Goeb

Eléphant du PHP | 183 Messages

13 oct. 2006, 16:36

Bon je viens de tous refaire (copier coller de mon code d'une autre page et la ca marche ...

Je comprend pas trops ... Je pense qu'il y avais en effet un probleme dans les variable .

Merci :) en tous cas de vous etre penché sur ce probleme
_________
Fabien

Mammouth du PHP | 19672 Messages

13 oct. 2006, 18:29

Allez, je vais faire un petit pari à 2 centimes : il manque dans ta balise <form> un attribut enctype="multipart/form-data" :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 183 Messages

14 oct. 2006, 00:20

En effet cyrano avant que je refasse le truc j'avais remarquer cette erreur je l'avais corriger mais le bug été toujours present.
_________
Fabien

Mammouth du PHP | 19672 Messages

14 oct. 2006, 08:15

Si tu as corrigé ta balise <form>, tu devrais avoir du contenu dans la super globale $_FILES, non ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 183 Messages

14 oct. 2006, 11:48

Et bien sa ne marché toujours pas mais je pense que j'avais fait une autre erreur autre part qui a été corrigé quand j'ai tous refait. et j'ai commenter le code ceu qui ma permit de mieux mi retrouver :)
_________
Fabien

Tournevyks
Invité n'ayant pas de compte PHPfrance

14 oct. 2006, 17:22

T'es sûr que $_FILES['imgfile']['tmp_name'] est un tableau, et pas une valeur ?

Eléphant du PHP | 100 Messages

14 oct. 2006, 19:04

Héhé Jai eu ce problème moi aussi sur un de mes sites sur lequel j'ai un upload de fichiers multiple donc voici comment j'ai procédé :

dans un premier temps il faut créer un array de tes fichiers en donnant comme nom a tes input de fichiers un nom du type name="monFichier[]"

Pour récupérer le résultat il faudra le trier avec une fonction parce que le résultat ne permet pas de traiter correctement chacun des fichiers un a un :
function orderfiles($array=array()){
	$myFiles = array();
	if(count($array) > 0){
		foreach($array as $key => $valeur)
		{	
		  $cpt=0;
		  foreach($valeur as $key2 => $valeur2)
		  {
			$myFiles[$cpt][$key]=$valeur2;
			$cpt++;
		  }
		}
	}
	return $myFiles;
}
Récupération et traitement :
$archive = orderfiles($_FILES['archive']);
if(count($archive) > 0){
	foreach($archive as $key => $valeur){
		$uploaded = (is_uploaded_file($archive[$key]['tmp_name'])) ? true : false;
		if($uploaded == true){
			$saveto = 'Tondossier/' . $archive[$key]['name'];
			$move = move_uploaded_file($archive[$key]['tmp_name'],$saveto);
		}
	}
}
Voilà j'espère que ça t'aidera :)