Upload file en php

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. 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)