téléchargement de plusieurs fichiers php

Présente le processus de téléchargement d'un seul fichier en PHP. Mais parfois, pour des raisons de commodité, nous devons répondre au besoin de télécharger plusieurs fichiers en même temps. Le principe du téléchargement multi-fichiers est le même, mais lors du traitement des données, les données téléchargées doivent être spécialement traitées.

<html> 
   <head> 
       <meta charset="utf-8" /> 
       <title>单文件上传</title> 
   </head> 
   <body> 
       <form action="morefile.php" method="post" enctype="multipart/form-data"> 
        <input type="file" name="file[]"> 
        <input type="file" name="file[]"> 
        <input type="submit" value="上传"> 
    </form> 
   </body> 
</html>

Voici une simple page de téléchargement, et le formulaire soumet deux fichiers en même temps. Nous pouvons soumettre du contenu via cette page.

Remarque :

1. Type d'entrée="file" name="file[]" Par rapport à avant, il y a un crochet supplémentaire après le fichier

2. Écrit 2 ou plus input type="file" name="file[]"
Nous utilisons $_FILES pour recevoir des informations sur le fichier, imprimer et afficher le tableau :

<?php 
var_dump($_FILES); //打印$_FILES查看数组结构 
?>

La structure du tableau est la suivante

array (size=1)  
    'file' =>  
        array (size=5) 
    'name' =>  
        array (size=2) 
        //文件名 
        0 => string 'psu.jpg' (length=7) 
        1 => string 'qwe.jpg' (length=7) 
    //文件mime类型 
    'type' => array (size=2) 
            0 => string 'image/jpeg' (length=10) 
            1 => string 'image/jpeg' (length=10) 
    //缓存文件 
    'tmp_name' =>  
        array (size=2) 
            0 => string 'E:\wamp\tmp\phpF6D5.tmp' (length=23) 
            1 => string 'E:\wamp\tmp\phpF6F5.tmp' (length=23) 
    //文件错误信息 
    'error' =>  
        array (size=2) 
            0 => int 0 
            1 => int 0 
    //文件大小 
    'size' =>  
        array (size=2) 
        0 => int 225824     
        1 => int 151651

Nous pouvons voir que les deux fichiers sont stockés dans un tableau et que les noms de clés sont les mêmes que ceux du fichier unique téléchargé. Par conséquent, nous devons utiliser une boucle for() pour récupérer respectivement les données requises des deux fichiers.

Les données de deux fichiers sont enregistrées dans $_FILES en même temps. Nous devons utiliser une simple boucle pour lire les informations d'un seul fichier et déplacer le fichier vers l'emplacement souhaité.

<?php
for ($i=0; $i < count($_FILE['file']['name']); $i++) {  

/* 
用is_uploaded_file()函数判断是上传文件 
并且没有出现错 
*/ 

   if(is_uploaded_file($_FILEs['file']['tmp_name'][$i]) && $_FILEs['file']['error'][$i] == 0){     
       if(move_uploaded_file($_FILEs['file']['tmp_name'][$i],'upload/'.$_FILE['file']['name'][$i])){
   //用move_uploaded_file()函数移动文件到指定的位置并使用文件原名 
   echo "上传成功"; 

       }else{ 

           echo '上传失败'; 

       } 

   }else{ 

       echo '上传失败'; 

   } 

} 
?>

Pour le processus de jugement détaillé, veuillez vous référer au téléchargement d'un seul fichier. Seul un jugement de base est effectué ici, et il n'y a aucun rappel sur la taille et le format du fichier.
Veuillez juger vous-même de la taille et du format du fichier en fonction de l'entreprise et fournir des rappels d'erreur.

Formation continue
||
<?php var_dump($_FILES); //打印$_FILES查看数组结构 ?>
soumettreRéinitialiser le code
  • Recommandations de cours
  • Téléchargement du didacticiel