Upload file en php

Hayat5 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -  
 le père -
Bonjour,

je veux faire upload pour plusieurs fichiers
<?php
 echo "<form  method='post' enctype='multipart/form-data' action='upload3.php'>";
for($i=1;$i<=$_POST['nb'];$i++){
    echo '<input type=file name="mesfichiers[]"/><br>';}
echo "
<input type=submit value=envoyer name=a></form>";

?>

et dans upload3.php:
<?php

$files_tab=$_FILES['mesfichiers']['tmp_name'];

foreach($files_tab as $file){
 
 $content_dir = $_SERVER['DOCUMENT_ROOT'].'voiture/image/images/';

    // 2
    if( !is_uploaded_file($_FILES['mesfichiers']['tmp_name']) )
    {
        exit("Le fichier est introuvable");
    }

    // 3
    if( !move_uploaded_file($files_tab, $content_dir . $_FILES['mesfichiers']['name']) )
    {
        exit("Impossible de copier le fichier dans $content_dir");   
}
}

?>

mais ce code nemarche pas car is_uploaded_file() accepte string et non pas des tableaux
mais je ne sais pas la bonne solution pour qu'il marche j'espere que quelqu'un puisse m'aider.
merci a l'avance

1 réponse

  1. le père
     
    Bonjour

    ton code ne marche pas parce que tu n'indiques pas le bon nom pour tes fichiers.
    Comme tu fais (avec raison) un foreach, chaque fichier est $file, pas $_FILES['mesfichiers'] Tu aurais donc dû écrire :

    <?php
    $files_tab=$_FILES['mesfichiers']['tmp_name'];
    
    foreach($files_tab as $file){
     
     $content_dir = $_SERVER['DOCUMENT_ROOT'].'voiture/image/images/';
        // 2
        if( !is_uploaded_file($file['tmp_name']) )
        {
            exit("Le fichier est introuvable");
        }
        // 3
        if( !move_uploaded_file($file['tmp_name'], $content_dir . $file['name']) )
        {
            exit("Impossible de copier le fichier dans $content_dir");   
    }
    }
    
    ?>

    (tes messages d'erreur sont un peu courts, tu devrais préciser avec quel fichier il y a un problème, puisque tu peux en avoir plusieurs)
    0