支持多文件上传的php文件上传代码

PHP 支持同时上传多个文件并将它们的信息自动以数组的形式组织,要完成这项功能,需要在 HTML 表单中对文件上传域使用和多选框与复选框相同的数组式提交语法.

  1. <title> 多个文件上传 </title>
  2. <link rel= "stylesheet " type= "text/css " href= "my.css ">
  3. </head>
  4. <body>
  5. <FORM action= "upload_array.php " method= "POST " name= "upload_multifiles " enctype= "multipart/form-data ">
  6. 请选择文件: <br>
  7. <INPUT TYPE= "FILE " name= "userfile[] " size= "45 "> <br>
  8. <INPUT TYPE= "FILE " name= "userfile[] " size= "45 "> <br>
  9. <INPUT TYPE= "FILE " name= "userfile[] " size= "45 "> <br>
  10. <INPUT TYPE= "FILE " name= "userfile[] " size= "45 "> <br>
  11. <INPUT TYPE= "FILE " name= "userfile[] " size= "45 "> <br>
  12. <INPUT TYPE= "SUBMIT " name= "submit " value= "开始上传 ">
  13. </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代码如下:

  1. <?php
  2. for($i=0;$i <count($userfile);$i++)
  3. {
  4. if($userfile_name[$i] <> " ")//判断上传的文件是否为空
  5. {
  6. copy($userfile[$i],$userfile_name[$i]);
  7. echo "文件名: ",$userfile_name[$i], " <br> ";
  8. echo "文件大小: ",$userfile_size[$i], " <br> ";
  9. echo "文件类型: ",$userfile_type[$i];
  10. }
  11. }
  12. ?>