山山未迟

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

文件上传

1. 什么是文件上传?

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

文件上传条件

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

clip_image002

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

clip_image004

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

clip_image006

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

clip_image008

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

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

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

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

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

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

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

clip_image010

文件转移

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

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

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

clip_image012

文件上传流程

clip_image014

封装文件上传函数

文件错误代码说明

clip_image016

文件重命名

clip_image018

算法

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

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

冒泡算法

clip_image020

posted on 2016-04-20 22:07  山山未迟  阅读(164)  评论(0编辑  收藏  举报