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

经验总结:示例PHP上传文件代码

今天看了一本关于PHP的书,让我了解了PHP上传文件的方法,最主要的两个函数是move_uploade_file(临时文件,目标位置和文件名)和is_uploaded_file()

今天看了一本关于PHP的书,让我了解了PHP上传文件的方法,最主要的两个函数是move_uploade_file(临时文件,目标位置和文件名)和is_uploaded_file(),前者用来移动上传后保存在服务器缓存区的文件到目标文件,后者用来判断文件是否上传成功。除了以上两个函数之外,还要说明一下form标签中enctype的值应该如下:

  1. <formenctypeformenctype=multipart/form-datamethod=postname=upform> 

只有其值为multipart/form-data才能保证以正确的编码方式上传文件。input标签type属性中的file

  1. <inputnameinputname=upfiletype=file> 

另一个系统函数是$_FILES,$_FILES[myFile][name]客户端文件的原名称、$_FILES[myFile][type]文件的MIME类型,例如image/gif、$_FILES[myFile][size]已上传文件的大小,单位为字节、$_FILES[myFile][tmp_name]储存的临时文件名,一般是系统默认、$_FILES[myFile][error]该文件上传相关的错误代码。这个函数将上传文件的信息分割成数组形式保存在不同的数组元素中,例如,文件名的值存储在$_FILES[myFile][name]中。下面附上自己写的简单的PHP上传文件代码:

PHP上传文件代码类saveupload.php

  1. php 
  2. if(is_uploaded_file($_FILES[upfile][tmp_name])){  
  3. $upfile=$_FILES[upfile];//如果已经选定了要上传的文件,将其索引保存在$upfile中  
  4.  
  5.  
  6. //分别去上传文件的名字,类型等  
  7. $name=$upfile[name];  
  8. $type=$upfile[type];  
  9. $size=$upfile[size];  
  10. $tmp_name=$upfile[tmp_name];  
  11. $error=$upfile[error];  
  12.  
  13.  
  14. //设定上传文件类型  
  15. switch($type){  
  16. caseimage/pjpeg:  
  17. $ok=1;  
  18. break;  
  19.  
  20. caseimage/jpeg:  
  21. $ok=1;  
  22. break;  
  23.  
  24. caseimage/png:  
  25. $ok=1;  
  26. break;  
  27.  
  28. caseimage/gif:  
  29. $ok=1;  
  30. break;  
  31. }  
  32.  
  33.  
  34. //如果文件类型合法并且$error返回值为0,说明上传成功  
  35. if($ok&&$error==0){  
  36. move_uploaded_file($tmp_name,up/.$name);//将保存在缓存的文件移动到指定目录下  
  37. echo上传成功;  
  38. }  
  39. }  
  40.  
  41. ?> 

PHP上传文件代码上传页面upload.php

  1. > 
  2. <htmlxmlnshtmlxmlns=http://www.w3.org/1999/xhtml> 
  3. <head> 
  4. <metahttp-equivmetahttp-equiv=Content-Typecontent=text/html;charset=utf-8/> 
  5. <title>uploadtitle> 
  6. <styletypestyletype=text/css> 
  7. body{  
  8. background-color:#CFF;  
  9. text-align:center;  
  10. }  
  11. --> 
  12. style>head> 
  13.  
  14. <body> 
  15. 文件上传  
  16. <hr/> 
  17. <formidformid=form1name=form1method=postaction=saveupload.phpenctype=multipart/form-data> 
  18. 上传文件:  
  19. <label> 
  20. <inputtypeinputtype=filename=upfile/> 
  21. label> 
  22. <label> 
  23. <inputtypeinputtype=submitname=buttonid=buttonvalue=上传/> 
  24. label> 
  25. form> 
  26.  
  27. body> 



推荐阅读
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • 本文介绍了Swing组件的用法,重点讲解了图标接口的定义和创建方法。图标接口用来将图标与各种组件相关联,可以是简单的绘画或使用磁盘上的GIF格式图像。文章详细介绍了图标接口的属性和绘制方法,并给出了一个菱形图标的实现示例。该示例可以配置图标的尺寸、颜色和填充状态。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 网址:https:vue.docschina.orgv2guideforms.html表单input绑定基础用法可以通过使用v-model指令,在 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • SAE是新浪云计算战略的核心组成部分,Storage是SAE为开发者提供的分布式文件存储服务,用来存放用户的持久化存储的文件。本文我们来说说SAEStorage外部PHP接口。 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
  • 开发笔记:计网局域网:NAT 是如何工作的?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了计网-局域网:NAT是如何工作的?相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 集成电路企业在进行跨隔离网数据交换时面临着安全性问题,传统的数据交换方式存在安全性堪忧、效率低下等问题。本文以《Ftrans跨网文件安全交换系统》为例,介绍了如何通过丰富的审批流程来满足企业的合规要求,保障数据交换的安全性。 ... [详细]
  • 本文详细介绍了git常用命令及其操作方法,包括查看、添加、提交、删除、找回等操作,以及如何重置修改文件、抛弃工作区修改、将工作文件提交到本地暂存区、从版本库中删除文件等。同时还介绍了如何从暂存区恢复到工作文件、恢复最近一次提交过的状态,以及如何合并多个操作等。 ... [详细]
author-avatar
手机用户2502936117
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有