php 多个文件上传

多个文件上传功能,其实很简单与单文件上传区别就是文件名用数组形式,然后获取上传的文件时就利用foreach来个个上传,这样就实现了文件批量上传的功能了,其实也是单文件,只是看上去是多个文件同时上传了.

PHP实例源码如下:

  1. <!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="content-type" content="text/html; charset=gb2312" />
  5. <title>php 多个文件上传</title>
  6. </head>
  7. <body>
  8. <form action="" method="post" enctype="multipart/form-data" name="form1" >
  9. <p>
  10. <label for="select"></label>
  11. <label for="filefield"></label>
  12. <input type="file" name="name[]" />
  13. </p>
  14. <p>
  15. <input type="file" name="name[]" />
  16. </p>
  17. <p>
  18. <input type="file" name="name[]" />
  19. </p>
  20. <p>
  21. <input type="file" name="name[]" />
  22. </p>
  23. <p>
  24. <input type="file" name="name[]" />
  25. </p>
  26. <p>
  27. <input type="submit" name="button" value="批量文件上传" />
  28. </p>
  29. </form>
  30. </body>
  31. </html>
  32. <?php
  33. foreach($_files as $f)
  34. {
  35. //处理中文名
  36. if (function_exists("iconv")) $f[name] = iconv("utf-8","gb2312",$f[name]);
  37. $unm=intval(mt_rand(1000,9999));
  38. $file="z_upload/".date("ymdhms").$unm.$f[name];
  39. //检查是否已经存在同名文件
  40. if (file_exists($file)) header("http/1.0 403");
  41. //保存文件
  42. if (!@move_uploaded_file($f["tmp_name"],$file))
  43. {
  44. header("http/1.0 404 not found");
  45. }else{
  46. if(!isset($_cookie['uploadpic'])){
  47. setcookie("uploadpic",$file);
  48. }else{
  49. unlink($_cookie['uploadpic']);
  50. setcookie("uploadpic","");
  51. setcookie("uploadpic",$file);
  52. }
  53. echo "1";
  54. }
  55. }
  56. ?>