php muat naik berbilang fail

Memperkenalkan proses memuat naik satu fail dalam PHP. Tetapi kadangkala, untuk kemudahan, kita perlu memenuhi keperluan untuk memuat naik berbilang fail pada masa yang sama. Prinsip muat naik berbilang fail adalah sama, tetapi apabila memproses data, data yang dimuat naik perlu diproses khas.

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

Berikut ialah halaman muat naik yang mudah, dan borang menyerahkan dua fail pada masa yang sama. Kami boleh menghantar kandungan melalui halaman ini.

Nota:

1. Input type="file" name="file[]" Berbanding sebelum ini, terdapat tambahan kurungan persegi selepas fail

2. Menulis 2 atau lebih input type="file" name="file[]"
Kami menggunakan $_FILES untuk menerima maklumat fail, mencetak dan melihat tatasusunan:

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

Struktur tatasusunan adalah seperti berikut

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

Kita dapat melihat bahawa kedua-dua fail disimpan dalam tatasusunan, dan nama kunci adalah sama dengan fail tunggal yang dimuat naik. Oleh itu, kita perlu menggunakan gelung for() untuk mendapatkan semula data yang diperlukan daripada kedua-dua fail masing-masing.

Data dua fail disimpan dalam $_FILES pada masa yang sama Kita perlu menggunakan gelung mudah untuk membaca maklumat satu fail dan memindahkan fail ke lokasi yang kita mahu.

<?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 '上传失败'; 

   } 

} 
?>

Untuk proses penghakiman terperinci, sila rujuk muat naik fail tunggal Hanya pertimbangan asas dibuat di sini, dan tiada peringatan tentang saiz dan format fail.
Sila nilaikan sendiri saiz dan format fail mengikut perniagaan dan berikan peringatan ralat.

Meneruskan pembelajaran
||
<?php var_dump($_FILES); //打印$_FILES查看数组结构 ?>
  • Cadangan kursus
  • Muat turun perisian kursus