热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

高手教你PHP上传多张图片

学习PHP时,你可能会遇到PHP上传多张图片问题,这里将介绍PHP上传多张图片问题的解决方法,在这里拿出来和大家分享一下。单张的图片上传是不复杂的,这里涉及到PHP上传多张图片和对

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

基本实现算法是使用数组的形式,把所有的图片提交个一个数组,对数组的元素进行一个个的处理。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).Ktd> 
  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].=文件已存在;  
  52. $unuploaded++;  
  53. continue;  
  54. }  
  55. }  
  56. else  
  57. {  
  58. $result[$i].=失败;  
  59. $unuploaded++;  
  60. }  
  61. $result[$i].=;  
  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>$unuploadedfont>td> 
  90. tr> 
  91. <trclasstrclass=navi> 
  92. <tdcolspantdcolspan=4align=center>[<ahrefahref=uploadimg.php?action=uploadtitle=继续上传>继续上传a>]
        [
    <ahrefahref=image.phptitle=浏览图片>浏览图片a>]td> 
  93. tr> 
  94. table> 
  95. ;  
  96. ?> 



推荐阅读
  • 本文详细介绍了如何在云服务器上配置Nginx、Tomcat、JDK和MySQL。涵盖从下载、安装到配置的完整步骤,帮助读者快速搭建Java Web开发环境。 ... [详细]
  • 一、下载Apache、MySql和PHP1、Apache的下载Apache服务器可以通过官方提供的镜像地址来下载windows的Apache安装程序,不过都是英文版的,而且下载速度 ... [详细]
  • 这是一个简单的投票程序,对于刚学PHP和朋友来说是一个很不错的入门程序。在这里给大家介绍一下,希望能对朋友们有所帮助。该系统是由以下四个文件组成的:有HTML调查表单的survey ... [详细]
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
  • yikesnews第11期:微软Office两个0day和一个提权0day
    点击阅读原文可点击链接根据法国大选被黑客干扰,发送了带漏洞的文档Trumps_Attack_on_Syria_English.docx而此漏洞与ESET&FireEy ... [详细]
  • HTML基础入门指南
    本文将深入浅出地介绍HTML的基础知识,包括其定义、开发工具、制定机构、特性、基本标签及更多实用内容。 ... [详细]
  • 为了解决不同服务器间共享图片的需求,我们最初考虑建立一个FTP图片服务器。然而,考虑到项目是一个简单的CMS系统,为了简化流程,团队决定探索七牛云存储的解决方案。本文将详细介绍使用七牛云存储的过程和心得。 ... [详细]
  • 本文详细介绍了如何检查和配置电脑上的PHP环境,包括位数、运行支持以及文件格式的打开方式。适合初学者了解PHP的基础知识和操作方法。 ... [详细]
  • 主调|大侠_重温C++ ... [详细]
  • 本文介绍了一个基于 Java SpringMVC 和 SSM 框架的综合系统,涵盖了操作日志记录、文件管理、头像编辑、权限控制、以及多种技术集成如 Shiro、Redis 等,旨在提供一个高效且功能丰富的开发平台。 ... [详细]
  • 推荐几款高效测量图片像素的工具
    本文介绍了几款适用于Web前端开发的工具,这些工具可以帮助用户在图片上绘制线条并精确测量其像素长度。对于需要进行图像处理或设计工作的开发者来说非常实用。 ... [详细]
  • 深入剖析JVM垃圾回收机制
    本文详细探讨了Java虚拟机(JVM)中的垃圾回收机制,包括其意义、对象判定方法、引用类型、常见垃圾收集算法以及各种垃圾收集器的特点和工作原理。通过理解这些内容,开发人员可以更好地优化内存管理和程序性能。 ... [详细]
  • 搭建Jenkins、Ant与TestNG集成环境
    本文详细介绍了如何在Ubuntu 16.04系统上配置Jenkins、Ant和TestNG的集成开发环境,涵盖从安装到配置的具体步骤,并提供了创建Windows Slave节点及项目构建的指南。 ... [详细]
  • PHP开发框架有哪些
    这篇文章给大家分享的是有关PHP开发框架有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。在我们开始之前,先 ... [详细]
  • 基于 Module 的 Laravel API 架构
    转自PHPLaravel开发者社区https:laravel-china.orgtop…我非常喜欢编写基于模块化设计的软件和编程方式,但我不太喜欢依赖第三方软件包和类库来处理一些琐 ... [详细]
author-avatar
会长大的幸福7007
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有