高手教你PHP上传多张图片

开发 后端
对于我们来说上传一张图片是非常简单的事情,这里教大家一个关于PHP上传多张图片的代码分析,希望对大家有帮助。

学习PHP时,你可能会遇到PHP上传多张图片问题,这里将介绍PHP上传多张图片问题的解决方法,在这里拿出来和大家分享一下。单张的图片上传是不复杂的,这里涉及到PHP上传多张图片和对图片格式的校验,保证上传的一定是图片,防止上传其他文件到服务器。

#T#基本实现算法是使用数组的形式,把所有的图片提交个一个数组,对数组的元素进行一个个的处理。PHP其实不过是Web服务器的一个模块功能,所以首先要保证Web服务器的安全。当然Web服务器要安全又必须是先保证系统安全,这样就扯远了,无穷无尽。PHP可以和各种Web服务器结合,这里也只讨论Apache。非常建议以chroot方式安装启动Apache,这样即使Apache和PHP及其脚本出现漏洞,受影响的也只有这个禁锢的系统,不会危害实际系统。以下为引用的内容:

  1. <?php 
  2.  
  3. //图片目录  
  4. $img_dir="../upload/";  
  5. //……html显示上传界面  
  6.  
  7. /*图片上传处理*/  
  8. //把图片传到服务器  
  9. //初始化变量  
  10.  
  11. $uploaded=0;  
  12. $unuploaded=0;  
  13.  
  14. //只允许五张图片上传  
  15.  
  16. for($i=0;$i<=5;$i++)  
  17. {  
  18. //获取当前图片的信息  
  19. $is_file=$_FILES['imgfile']['name'][$i];  
  20. //如果当前图片不为空  
  21. if(!empty($is_file))  
  22. {  
  23. //把当前图片的信息存储到变量里  
  24. $result[$i]="  
  25. <trclasstrclass=td2align=center> 
  26. <td>".$_FILES['imgfile']['name'][$i]."</td> 
  27. <td>".round($_FILES['imgfile']['size'][$i]/1024,2)."K</td> 
  28. <td>".$_FILES['imgfile']['type'][$i]."</td> 
  29. <td>";  
  30.  
  31. //判断上传的图片的类型是不是jpg,gif,png,bmp中的一种,同时判断是否上传成功  
  32. if(  
  33.  
  34. $_FILES['imgfile']['type'][$i]=="image/pjpeg"||  
  35. $_FILES['imgfile']['type'][$i]=="image/gif"||  
  36. $_FILES['imgfile']['type'][$i]=="image/x-png"||  
  37. $_FILES['imgfile']['type'][$i]=="image/bmp"  
  38. )  
  39. {  
  40. //如果上传的文件没有在服务器上存在  
  41. if(!file_exists($img_dir.$_FILES['imgfile']['name'][$i]))  
  42. {  
  43. //把图片文件从临时文件夹中转移到我们指定上传的目录中  
  44. move_uploaded_file($_FILES['imgfile']['tmp_name'][$i],  
  45. $img_dir.$_FILES['imgfile']['name'][$i]);  
  46. $result[$i].="成功";  
  47. $uploaded++;  
  48. }  
  49. else//如果文件已经在服务器上存在  
  50. {  
  51. $result[$i].="<fontcolor=red>文件已存在</font>";  
  52. $unuploaded++;  
  53. continue;  
  54. }  
  55. }  
  56. else  
  57. {  
  58. $result[$i].="<fontcolor=red>失败</font>";  
  59. $unuploaded++;  
  60. }  
  61. $result[$i].="</td></tr>";  
  62. }//endif  
  63. }//endfor  
  64.  
  65.  
  66. //如果没有选择任何图片  
  67. if(empty($result))  
  68. {  
  69. prompt_msg("错误信息","没有选择任何图片。","返回上一步","uploadimg.php?action=upload");  
  70. exit();  
  71. }  
  72.  
  73. //显示所有上传后的结果  
  74. echo"<tablecellpaddingtablecellpadding=4cellspacing=1border=0class=tablewidth=400align=left> 
  75. <trclasstrclass=navialign=center> 
  76. <td>文件名</td> 
  77. <td>大小</td> 
  78. <td>类型</td> 
  79. <td>上传结果</td> 
  80. </tr> 
  81. ";  
  82.  
  83. foreach($resultas$value)  
  84. {  
  85. echo$value;  
  86. }  
  87.  
  88. echo"<trclasstrclass=td1> 
  89. <tdcolspantdcolspan=4>共上传".($uploaded+$unuploaded).",成功:$uploaded,失败:<fontcolorfontcolor=red>$unuploaded</font></td> 
  90. </tr> 
  91. <trclasstrclass=navi> 
  92. <tdcolspantdcolspan=4align=center>[<ahrefahref='uploadimg.php?action=upload'title='继续上传'>继续上传</a>]
    &nbsp;&nbsp;&nbsp;&nbsp;[
    <ahrefahref='image.php'title='浏览图片'>浏览图片</a>]</td> 
  93. </tr> 
  94. </table> 
  95. ";  
  96. ?> 
责任编辑:田树 来源: 博客
相关推荐

2009-11-16 09:35:42

PHP上传

2009-11-18 18:02:19

PHP字符串截取

2009-11-30 19:09:46

PHP上传图片

2009-11-16 13:18:10

PHP上传图片代码

2009-11-24 14:45:08

PHP批量上传图片

2009-11-16 11:18:38

PHP上传图片代码

2009-11-13 09:30:28

2009-11-11 15:24:35

ADO创建数据库

2009-11-24 16:09:44

PHP Ajax

2011-05-13 16:01:19

PHP

2009-12-31 16:42:37

LMDS接入技术

2009-12-22 13:56:24

如何创建IP标准访问表

2009-11-16 11:07:26

PHP上传图片

2009-11-16 17:07:58

PHP二维数组

2009-11-17 13:47:20

PHP安装配置

2014-11-06 09:36:50

OVSvlan

2009-11-17 10:28:43

PHP星期几获取

2009-11-16 14:09:30

PHP上传类

2010-01-19 10:00:36

Windows 7查看版本号

2009-12-08 17:53:31

PHP const
点赞
收藏

51CTO技术栈公众号