高手教你PHP上传多张图片
创始人
2024-06-11 19:00:43
0

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

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

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

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...