首页 > php学习 > php常用函数 > PHP中文件的上传和下载常用函数
2016
12-16

PHP中文件的上传和下载常用函数

文件的上传

1.html标签需要做的上传设置

1) form标签属性设置

1>method设置为post

2>enctype设置为multipart/form-data

3>form表单中设置隐藏类型的input,其中name值设置为MAX_FILE_SIZE,VALUE值设置为需要限制的上传文件的大小(单位为字节)

2.在服务器端通过PHP处理上传文件,涉及到下面的几条信息

1)与上传有关的 php配置选项(php.ini)

配置项 可能值 功能描述

file_uploads ON 确定服务器上的PHP脚本是否可以接受HTTP文件上传

memory_limit 8M 设置脚本可以分配的最大内存量,防止失控的脚本独占服务器内存

upload_max_filesize 2M 限制PHP处理上传文件的最大值,此值必须小于post_max_size值

post_max_size 8M 限制通过POST方法可以接受的信息最大量

upload_tmp_dir F:/wamp/tmp 上传文件存放的临时路径,可以是一个绝对路径。这个目录对于拥有此服务器进程用户必须是可写的。

2)$_FILES多维数组:用于存储各种与上传有关的信息

<input type="file" name="myfile" />

数组$_FILES中第一个名字为input中的name属性的值

$_FILES['myfile']['name'] 客户端机器文件的原名称,包含扩展名

$_FILES['myfile']['size'] 已上传文件的大小,单位为字节

$_FILES['myfile']['tmp_name'] 文件上传之后,在服务器端存储的临时文件名

$_FILES['myfile']['error'] 文件上传时产生的错误

0:表示没有发生任何错误,文件上传成功

1:表示上传文件的大小超出了再PHP配置文件中upload_max_filesize选项限制的值

2:表示上传文件大小超出了HTML表单中MAX_FILE_SIZE选项所指定的值

3:表示文件只被部分上传

4:表示没有上传任何文件

$_FILES['file']['type'] 获取客户端上传文件的MIME类型,MIME类型规定了各种文件格式的类型。每种MIME类型都是由/分隔的主类型和子类型组成

3)PHP的文件上传处理函数:用于上传文件的后续处理

1>is_uploaded_file(string $filename)判断指定的文件是否通过HTTP POST上传的,必段指定类似于 $_FILES['userfile']['tmp_name'] 的变量

2>move_uploaded_file(string $filename,string $destination)

本函数检查并确保由 filename 指定的文件是合法的上传文件(即通过 PHP 的 HTTP POST 上传机制所上传的)。如果文件合法,则将其移动为由 destination 指定的文件。

文件的下载

1)发送指定的文件MIME类型的头信息

header('Content-type:MIME类型');

MIME类型的获取需要用到扩展函数fileinfo()

先创建一个fileinfo资源;$finfo=finfo_open(FILEINFO_MIME_TYPE)

返回一个指定的文件信息:finfo_file($finfo,$file_name)($file_name为要检查的文件名)

关闭一个fileinfo资源:finfo_close($finfo)

2)指定下载文件的描述

header('Content-Disposition:attachement;filename=文件名称');

3)指定下载文件的大小

header('Content-Length:文件大小');

4)读取文件内容至输出缓冲区

readfile(string $filename);

最后编辑:
作者:qingheluo
这个作者貌似有点懒,什么都没有留下。