上傳多個文件

您可以對 input 域使用不同的 name 來上傳多個文件。

PHP 支援同時上傳多個文件並將它們的訊息自動以陣列的形式組織。要完成這項功能,您需要在 HTML 表單中對文件上傳域使用類似於多下拉選單和複選框的陣列名稱來送出。

註: 對多文件上傳的支援是在 3.0.10 版本增加的。

例子 18-3. 上傳多個文件

<form action="file-upload.php" method="post" enctype="multipart/form-data">
  Send these files:<br>
  <input name="userfile[]" type="file"><br>
  <input name="userfile[]" type="file"><br>
  <input type="submit" value="Send files">
</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] 都將被同時設置並有效。