注册 登录

清河洛

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

qingheluo2016-12-16清河洛315
文件的上传1.html标签需要做的上传设置form标签属性设置 method设置为post enctype设置为multipart/form-data form表单中设置隐藏类型的input,其中name值设置为MAX_FILE_SIZE,VALUE值设置为需要限制的上传文件的大小(单位为字节) 2.在服务器端通过PHP处理上传文件,涉及到下面的几条信息1)与上传有关的 php配置选项(php.ini)file_uploads :确定是否可以接受HTTP文件上传 memory_limit :设置脚本可以分配的最大内存量 upload_max_filesize :限制上传文件的最大值,此值...

文件的上传

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

form标签属性设置
method设置为post
enctype设置为multipart/form-data
form表单中设置隐藏类型的input,其中name值设置为MAX_FILE_SIZE,VALUE值设置为需要限制的上传文件的大小(单位为字节)

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

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

file_uploads :确定是否可以接受HTTP文件上传
memory_limit :设置脚本可以分配的最大内存量
upload_max_filesize :限制上传文件的最大值,此值必须小于post_max_size值
post_max_size :限制通过POST方法可以接受的信息最大量
upload_tmp_dir :上传文件存放的临时路径。这个目录对于拥有此服务器进程用户必须是可写的

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

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

$_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类型

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

is_uploaded_file(string $filename)

判断指定的文件是否通过HTTP POST上传的
一般指定为服务器端存储的临时文件名

move_uploaded_file(string $filename,string $destination)

检查并确保由filename指定的文件是合法的上传文件
如果文件合法,则将其移动为由destination指定的文件

文件的下载

发送指定的文件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)

指定下载文件的描述

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

指定下载文件的大小

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

向输出缓冲区输出下载文件的内容

readfile($filename,include_path=0)
读取一个文件,并把文件内容写入到输出缓冲
如果成功,该函数返回从文件中读入的字节数
如果失败,该函数返回FALSE并附带错误信息
该方法只能打开一个已经存在的文件,也就是说只能下载服务器上已经存在的文件

file_put_contents('php://output', $file_data);

如果成功,返回写入文件中的字符数。如果失败返回False
该方法可以把数据直接下载成文件
如果下载的是文本文件且编码为utf-8,文件头前需添加BOM,不然在windows上打开会乱码
$file_data=chr(0xEF).chr(0xBB).chr(0xBF).$file_data


网址导航