php中upload函数,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多维数组:用于存储各种与上传有关的信息

数组$_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($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

最后编辑:2020-10-16作者:qingheluo

5aea90233e4bbc88135a027c2de2596a.png

这个作者貌似有点懒,什么都没有留下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值