PHP 支援同時上傳多個檔案並將它們的資訊自動以數組的形式組織。要完成這項功能,需要在 HTML 表單中對檔案上傳域使用和多選框與複選框相同的數組式提交文法。
<title> 多個檔案上傳 </title>
<link rel= "stylesheet " type= "text/css教程 " href= "my.css ">
</head>
<body>
<FORM action= "upload_array.php教程 " method= "POST " name= "upload_multifiles " enctype= "multipart/form-data ">
請選擇檔案: <br>
<INPUT TYPE= "FILE " name= "userfile[] " size= "45 "> <br>
<INPUT TYPE= "FILE " name= "userfile[] " size= "45 "> <br>
<INPUT TYPE= "FILE " name= "userfile[] " size= "45 "> <br>
<INPUT TYPE= "FILE " name= "userfile[] " size= "45 "> <br>
<INPUT TYPE= "FILE " name= "userfile[] " size= "45 "> <br>
<INPUT TYPE= "SUBMIT " name= "submit " value= "開始上傳 ">
</FORM>
當以上表單被提交後,數組 $_FILES['userfile'],$_FILES['userfile']['name'] 和 $_FILES['userfile']['size'] 將被初始化(在 PHP 4.1.0 以前版本是 $HTTP_POST_FILES)。如果 register_globals 的設定為 on,則和檔案上傳相關的全域變數也將被初始化。所有這些提交的資訊都將被儲存到以數字為索引的數組中。
例如,假設名為 /home/test/review.html 和 /home/test/xwp.out 的檔案被提交,則 $_FILES['userfile']['name'][0] 的值將是 review.html,而 $_FILES['userfile']['name'][1] 的值將是 xwp.out。類似的,$_FILES['userfile']['size'][0] 將包含檔案 review.html 的大小,依此類推。
此外也同時設定了 $_FILES['userfile']['name'][0],$_FILES['userfile']['tmp_name'][0],$_FILES['userfile']['size'][0] 以及 $_FILES['userfile']['type'][0]。
php檔案
upload_array.php
--------------------------------
<?php
for($i=0;$i <count($userfile);$i++)
{
if($userfile_name[$i] <> " ")//判斷上傳的檔案是否為空白
{
copy($userfile[$i],$userfile_name[$i]);
echo "檔案名稱: ",$userfile_name[$i], " <br> ";
echo "檔案大小: ",$userfile_size[$i], " <br> ";
echo "檔案類型: ",$userfile_type[$i];
}
}
?>