20141226--数据提交+文件上传-02

文件上传

1. 什么是文件上传?

将浏览器端电脑上所存在的文件,通过浏览器提交给服务器,并保存在服务器端。

文件上传条件

a) 服务器端必须要允许浏览器端上传文件,PHP负责管理

为了方便查看文件上传的临时文件,修改临时文件的存储目录:D:/server/tmp

b) 浏览器允许文件上传:浏览器能够根据表单选择对应的要上传的文件,文件上传只能是POST提交

二进制流不可能直接上传,必须告诉浏览器当前文件的流是二进制流:给form增加一个属性:enctype = “multipart/form-data”告诉浏览器当前要提交给服务器的数据可能存在二进制流

以上代码执行时出现了三个现象

1. 文件实现了上传,存在于指定的临时目录下,以临时文件的形式存在

2. 随着脚本执行结束,临时文件消失

操作系统的原因:操作系统认为当前是用户提交的数据,那么该数据存在不安全性,对于系统存在安全威胁,不管当前服务器对该文件处理或者不处理,系统都会在服务器处理完之后清理掉。

3. 文件上传成功之后,$_POST接收不到数据

$_POST与post提交一样,$_POST只能接收字符流数据,而文件都是二进制流,所以不能接收

PHP中专门用$_FILES来接收文件数据。所有的文件上传的数据都在$_FILES里面。

文件转移

在脚本执行期间将临时文件从临时目录转入到指定的文件上传的目录里。

move_uploaded_file(临时文件路径,目标文件路径):两个路径都是带文件名,移动是直接移动源文件

copy(临时文件路径,目标文件路径):移动的是复制的文件,源文件不动

文件上传流程

封装文件上传函数

文件错误代码说明

文件重命名

算法

排序算法:如何将一个无序的数组(数值数组)进行排序

常见的排序方法:冒泡,选择,插入和快速排序

冒泡算法

时间: 2024-10-06 08:56:11

20141226--数据提交+文件上传-02的相关文章

post提交/文件上传

第一步:修改在php5下POST文件大小的限制 1.编修php.ini 找到:max_execution_time = 30 ,这个是每个脚本运行的最长时间,单位秒,修改为: max_execution_time = 150 找到:max_input_time = 60,这是每个脚本可以消耗的时间,单位也是秒,修改为: max_input_time = 300 找到:memory_limit = 128M,这个是脚本运行最大消耗的内存,根据你的需求更改数值,这里修改为: memory_limit

WebApi发送HTML表单数据:文件上传与多部分MIME

5.3 Sending HTML Form Data5.3 发送HTML表单数据(2) 本文引自:http://www.cnblogs.com/r01cn/archive/2012/12/20/2826230.html By Mike Wasson|June 21, 2012作者:Mike Wasson | 日期:2012-6-21 Part 2: File Upload and Multipart MIME第2部分:文件上传与多部分MIME This tutorial shows how to

(转)WebApi发送HTML表单数据:文件上传与多部分MIME

5.3 Sending HTML Form Data5.3 发送HTML表单数据(2) 本文引自:http://www.cnblogs.com/r01cn/archive/2012/12/20/2826230.html By Mike Wasson|June 21, 2012作者:Mike Wasson | 日期:2012-6-21 Part 2: File Upload and Multipart MIME第2部分:文件上传与多部分MIME This tutorial shows how to

SpringMVC返回JSON数据以及文件上传、过滤静态资源

返回JSON数据 在如今前后端分离的趋势下,后端基本不需要再去关心前端页面的事情,只需要把数据处理好并通过相应的接口返回数据给前端即可.在SpringMVC中,我们可以通过@ResponseBody注解来返回JSON数据或者是XML数据. 这个注解的作用是将控制器方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,也就是HTTP响应的内容体,一般我们都是用来返回JSON数据,因为默认是按JSON格式进行转换的. 需要注意的是,在使用此注解之后不会再走视图解

Django获取多个数据及文件上传

1. 选择性别: 1)更新login.html模板 2)views.py中获取客户端提交的数据 3)当选择性别为"男"后,后台得到了gender=1. 2.选择爱好,可以多选,所以后台会获得多个数据. radio单个数据的获取方法: v1=request.POST.get('gender') checkbox多个数据的获取方法: v2=request.POST.getlist('favor') 1)更新login.html模板 2)views.py中获取客户端提交的数据 3)当选择爱好

20141226--数据提交+文件上传-01

回顾 系统函数:字符串函数和时间日期函数 数组 数组元素可以是任意数据类型:数组长度没有限制 php凡是碰到变量带中括号的一定会当做数组处理 遍历数组:for循环,foreach循环,each搭配循环,函数(key,current,next,prev,end,reset) 二维数组:php数组元素又是数组 数据结构:栈(FILO)和队列(FIFO) 数组 字符串数组函数 字符串与数组之间的关系(转换) explode:爆炸,将一个字符串按照某个指定的规则(通常是特殊字符),将数组分成多个段,每一

vue axios 与 FormData 结合 提交文件 上传文件

---再利用Vue.axios.FormData做上传文件时,遇到一个问题,后台虽然接收到请求,但是将文件类型识别成了字符串,所以,web端一直报500,结果是自己大意了. 1.因为使用了new  FormData来操作表单,并且在测试模拟请求时,从消息头里看到的确实是表单提交[Content-Type: multipart/form-data]. 所以就没有单独在设置. 结果后来加上了这个配置才可以通过了.这里的原理请参照转发大神的原帖. 这个必须设置:Content-Type: multip

Struts2学习总结——文件上传与下载

Struts2文件上传与下载 1.1.1新建一个Maven项目(demo02) 在此添加Web构面以及 struts2 构面 1.2.1配置Maven依赖(pom.xml 文件) <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20

HttpClient文件上传下载

1 HTTP HTTP 协议可能是如今 Internet 上使用得最多.最重要的协议了,越来越多的 Java 应用程序须要直接通过 HTTP 协议来訪问网络资源. 尽管在 JDK 的 java.net 包中已经提供了訪问 HTTP 协议的基本功能,可是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活.HttpClient 用来提供高效的.最新的.功能丰富的支持 HTTP 协议的client编程工具包,而且它支持 HTTP 协议最新的版本号和建议. 一般的情况下我们都是使用Chro