位置: 编程技术 - 正文
推荐整理分享PHP使用header方式实现文件下载功能(php header refresh),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:php header refresh,php post header,php header refresh,php header refresh,php header函数,php中header的用法,php中的header,php headers,内容如对您有帮助,希望把文章链接给更多的朋友!
先给大家介绍下PHP header() 函数
定义和用法
header() 函数向客户端发送原始的 HTTP 报头。
认识到一点很重要,即必须在任何实际的输出被发送之前调用 header() 函数(在 PHP 4 以及更高的版本中,您可以使用输出缓存来解决此问题):
语法
数 描述 string 必需。规定要发送的报头字符串。 replace
可选。指示该报头是否替换之前的报头,或添加第二个报头。
默认是 true(替换)。false(允许相同类型的多个报头)。
http_response_code 可选。把 HTTP 响应代码强制为指定的值。(PHP 4 以及更高版本可用)php文件下载可以使用http的请求头加上php的IO可以实现,很久之前写过这么一个功能,后来代码没了,今天记录一下
1、先看一下一个正常的http请求
2、一些常见的header功能
3、看下下载所要用的的请求头
content-type:文件类型 Accept-Ranges:表示接收数据的类型或者范围,图片属于二进制的东西所以需要使用字节的方式传输 Accept-Length:表示接收的文件大小,php文件下载需要告诉浏览器下载的文件有多大 Content-Disposition:附件只需要把文件名给过去就可以,这个名称就是下载时显示的文件名称4、php的文件操作出现的比较早,文件名是中文的时候需要注意转码
5、php的文件下载机制是首先nginx把文件信息读入服务器内存,然后使用请求头把文件二进制信息通过浏览器传给客户端
feof用来判断文件是否已经读到了末尾,fread用来把文件读入缓冲区,缓冲区的大小是,一边读取一边把数据输出到浏览器。为了下载的安全性每次读数据都进行字节的计数。文件读取完毕后关闭输入流
注意:
a、如果运行的过程中出现问题,可以清空(擦掉)输出缓冲区,使用下面的代码即可
ob_clean();
b、很多人喜欢用readfile,如果是大文件,可能会有问题
完整代码
PS:下面看一段实例代码php如何通过header文件头实现文件下载
具体代码如下所示:
总结
以上所述是小编给大家介绍的PHP使用header方式实现文件下载功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对积木网网站的支持!
thinkPHP5 ajax提交表单操作实例分析 本文实例讲述了thinkPHP5ajax提交表单操作。分享给大家供大家参考,具体如下:!DOCTYPEhtmlhtmlheadmetacharset="UTF-8"title/titlescriptsrc="//cdn.bootcss.com/jquery/3.1.1/jquer
ThinkPHP5联合(关联)查询、多条件查询与聚合查询实例详解 本文实例讲述了ThinkPHP5联合(关联)查询、多条件查询与聚合查询。分享给大家供大家参考,具体如下:一、联合(关联)查询1.项目表DROPTABLEIFEXISTS`darling_pro
ThinkPHP5查询数据及处理结果的方法小结 本文实例讲述了ThinkPHP5查询数据及处理结果的方法。分享给大家供大家参考,具体如下:在处理数据库查询结果时遇到了些问题,记录下用到过的几种
友情链接: 武汉网站建设