Erreur avec foreach ...

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Erreur avec foreach ...

par stevelace » 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 :)

par Tournevyks » 14 oct. 2006, 17:22

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

par fabien_14 » 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 :)

par Cyrano » 14 oct. 2006, 08:15

Si tu as corrigé ta balise <form>, tu devrais avoir du contenu dans la super globale $_FILES, non ?

par fabien_14 » 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.

par Cyrano » 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

par fabien_14 » 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

par goeb » 13 oct. 2006, 16:27

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

par fabien_14 » 13 oct. 2006, 16:21

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

Code : Tout sélectionner

array(0) { }

par Cyrano » 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().

Erreur avec foreach ...

par fabien_14 » 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