Upload de plusieur fichier

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 : Upload de plusieur fichier

Re: Upload de plusieur fichier

par guigui69 » 15 févr. 2010, 12:48

Merci pour ton aide.
S'était bien ça le problème.

Re: Upload de plusieur fichier

par Ryle » 31 janv. 2010, 14:14

Ton problème vient de ton foreach :
foreach ($_FILES['fichier_upload'] as $key => $value)
Ce couple key/value correspond à chacun des sous tableaux de $_FILES['fichier_upload']. La première itération renseigne $key avec la valeur "name", la seconde avec la valeur "type", etc. et ce n'est pas ce qu'il te faut. Tu as besoin de l'index numérique : $_FILES['fichier_upload']['name'][0] pour le premier fichier, $_FILES['fichier_upload']['name'][1] pour le second etc.

Tu peux le faire de différentes façons, en voici quelques unes :
foreach ($_FILES['fichier_upload']['name'] as $key => $value) { // $key contiendra 0, 1, 2 ...
  echo $_FILES['fichier_upload']['name'][$key]; 
  echo $_FILES['fichier_upload']['type'][$key];
  ...
}
$i = 0;
while ($i < count($_FILES['fichier_upload']['name'])) {
  echo $_FILES['fichier_upload']['name'][$i]; 
  echo $_FILES['fichier_upload']['type'][$i];
  ...
  $i++;
}

Upload de plusieur fichier

par guigui69 » 29 janv. 2010, 20:30

Bonsoir à tous,

je bloque sur l'upload des plusieurs fichiers, et il me retourne une erreur:

Code : Tout sélectionner

Array ( [fichier_upload] => Array ( [name] => Array ( [0] => flash_ominia2.JPG [1] => espace.JPG ) [type] => Array ( [0] => image/jpeg [1] => image/jpeg ) [tmp_name] => Array ( [0] => C:\Documents and Settings\r4\Local Settings\Temp\php295C.tmp [1] => C:\Documents and Settings\r4\Local Settings\Temp\php295D.tmp ) [error] => Array ( [0] => 0 [1] => 0 ) [size] => Array ( [0] => 90422 [1] => 14600 ) ) )
Mais cela ne fonctionne pas
<?php session_start();
include ("fonction/fonction_admin.php");
auth();

haut_partie_admin(Administration);
?>


   <?php
if(isset($_POST['titre_upload']))
{

foreach ($_FILES['fichier_upload'] as $key => $value)
{
echo $_FILES['fichier_upload']['name'][$key];
$dossier = 'fichier/';
$fichier = basename($_FILES['fichier_upload']['name'][$key]);
$taille_maxi = 100000;
$taille = filesize($_FILES['fichier_upload']['tmp_name'][$key]);
$extensions = array('.png', '.gif', '.jpg', '.jpeg', '.PNG', '.GIF', '.JPG', '.JPEG', '.pdf', '.PDF', '.doc', '.DOC', '.xls', '.XLS', '.zip', '.rar');
$extension = strrchr($_FILES['fichier_upload']['name'][$key], '.'); 
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
     $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
}
if($taille>$taille_maxi)
{
     $erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
     //On formate le nom du fichier ici...
     $fichier = strtr($fichier, 
          'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
          'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
     $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
     if(move_uploaded_file($_FILES['fichier_upload']['tmp_name'][$key], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
     {
          echo 'Upload effectué avec succès !';
     }
     else //Sinon (la fonction renvoie FALSE).
     {
          echo 'Echec de l\'upload !';
     }
}
else
{
     echo $erreur;
}

}
}
else
{
echo 'eeeeellllllllllllll';
}
	echo '<pre>';print_r($_FILES); echo '</pre>';
ini_set('display_errors', 1);
ini_set('log_errors', 1);
ini_set('error_log', dirname(__FILE__) . '/error_log.txt');
error_reporting(E_ALL);
?>

Code : Tout sélectionner

Notice: Undefined index: name in D:\Program Files\UwAmp\www\4dm1n\upload_fichier2.php on line 15 Notice: Undefined index: name in D:\Program Files\UwAmp\www\4dm1n\upload_fichier2.php on line 17 Notice: Undefined index: name in D:\Program Files\UwAmp\www\4dm1n\upload_fichier2.php on line 19 Notice: Undefined index: name in D:\Program Files\UwAmp\www\4dm1n\upload_fichier2.php on line 21
Quel erreur j'ai commis dans mon code pour l'envoie de ces fichiers

Merci d'avance je suis decu depuis plus de 3h et je ne voit pas.
Je suis sur c'est un truc tout bete.

guigui69