关于PHP下载文件功能中header()书写方式

一、下载所用header头

header ( "Cache-Control: max-age=0" );
header ( "Content-Description: File Transfer" );
header ( 'Content-disposition: attachment; filename='.basename($new_file)); //文件名
header ( "Content-Type: application/png" ); //文件格式:png
header ( "Content-Transfer-Encoding: binary" ); // 告诉浏览器,这是二进制文件
header ( 'Content-Length: ' . filesize ( $new_file ) ); //告诉浏览器,文件大小
@readfile ( $new_file );//输出文件;    

二、封装成方法

function down_file($url,$type='application/zip'){header("Cache-Control: public"); header("Content-Description: File Transfer"); header('Content-disposition: attachment; filename='.basename($url)); //文件名   header("Content-Type: ".$type); //zip格式的   header("Content-Transfer-Encoding: binary"); //告诉浏览器,这是二进制文件    header('Content-Length: '. filesize($url)); //告诉浏览器,文件大小   @readfile($url);
}

三、”Cache-Control: XXX”解析

请求头

max-age
  客户端不愿意接受age超过这个值的缓存。并且不接受过期缓存,除非max-stale存在。 总是有值

max-stale
  如果有值,客户端可以接受过期时间不超过指定值的缓存
  如果没有值,客户端愿意接受过期缓存而无论过期过久。

min-fresh
  客户端愿意接受一个新鲜度不小于当前age加上指定时间的响应。简单说在指定的后续一段时间内不会过期的响应。 总是有值

no-cache
  客户端示意缓存,在使用缓存的时候必须进行校验。 。没有值

no-store
  客户端示意缓存,不要存储本次请求的响应。但是对于已经缓存的内容则没有影响。

no-transform
  不得对资源进行转换或转变。

only-if-cached
  客户端只接受缓存给出的响应,如果缓存没有命中应该返回一个504

响应头
must-revalidate
  一旦缓存过期,必须向源服务器进行校验,不得使用过期内容。如果无法连接必须返回504。
没有值

no-cache
  如果值,在没有成功通过源站校验的情况下不得使用缓存。 有值,在进行验证的时候不要发送值指示的头域。 如Cache-Control: no-cache=”set-cookie,set-cookie2”,表示不要携带cookie进行验证。 关于带有值的情况介绍较少,这里有一个讨论:no-cache头带值时

no-store
  不要缓存当前请求的响应 。没有值

no-transform
  与请求头语义相同

public
  任何缓存都可以进行缓存,即使响应默认是不可缓存或仅私有缓存可存的情况。

private
  没有值,公有缓存不可存储;即使默认是不可缓存的,私有缓存也可以存储 。有值,将无值时的作用,限制到指定头字段上。公有有缓存不可存储指定的头字段,而其他字段可以缓存。

proxy-revalidate
  与must-revalidate相同,但仅对公共缓存生效。 没有值

max-age
  在经过指定时间后将过期 。有值

s-maxage
  指定响应在公共缓存中的最大存活时间,它覆盖max-age和expires字段。

四、Content-Type:application/xxx解析

‘ez’ => ‘application/andrew-inset’,

‘hqx’ => ‘application/mac-binhex40’,

‘cpt’ => ‘application/mac-compactpro’,

‘doc’ => ‘application/msword’,

‘bin’ => ‘application/octet-stream’,

‘dms’ => ‘application/octet-stream’,

‘lha’ => ‘application/octet-stream’,

‘lzh’ => ‘application/octet-stream’,

‘exe’ => ‘application/octet-stream’,

‘class’ => ‘application/octet-stream’,

‘so’ => ‘application/octet-stream’,

‘dll’ => ‘application/octet-stream’,

‘oda’ => ‘application/oda’,

‘pdf’ => ‘application/pdf’,

‘ai’ => ‘application/postscript’,

‘eps’ => ‘application/postscript’,

‘ps’ => ‘application/postscript’,

‘smi’ => ‘application/smil’,

‘smil’ => ‘application/smil’,

‘mif’ => ‘application/vnd.mif’,

‘xls’ => ‘application/vnd.ms-excel’,

‘ppt’ => ‘application/vnd.ms-powerpoint’,

‘wbxml’ => ‘application/vnd.wap.wbxml’,

‘wmlc’ => ‘application/vnd.wap.wmlc’,

‘wmlsc’ => ‘application/vnd.wap.wmlscriptc’,

‘bcpio’ => ‘application/x-bcpio’,

‘vcd’ => ‘application/x-cdlink’,

‘pgn’ => ‘application/x-chess-pgn’,

‘cpio’ => ‘application/x-cpio’,

‘csh’ => ‘application/x-csh’,

‘dcr’ => ‘application/x-director’,

‘dir’ => ‘application/x-director’,

‘dxr’ => ‘application/x-director’,

‘dvi’ => ‘application/x-dvi’,

‘spl’ => ‘application/x-futuresplash’,

‘gtar’ => ‘application/x-gtar’,

‘hdf’ => ‘application/x-hdf’,

‘js’ => ‘application/x-javascript’,

‘skp’ => ‘application/x-koan’,

‘skd’ => ‘application/x-koan’,

‘skt’ => ‘application/x-koan’,

‘skm’ => ‘application/x-koan’,

‘latex’ => ‘application/x-latex’,

‘nc’ => ‘application/x-netcdf’,

‘cdf’ => ‘application/x-netcdf’,

‘sh’ => ‘application/x-sh’,

‘shar’ => ‘application/x-shar’,

‘swf’ => ‘application/x-shockwave-flash’,

‘sit’ => ‘application/x-stuffit’,

‘sv4cpio’ => ‘application/x-sv4cpio’,

‘sv4crc’ => ‘application/x-sv4crc’,

‘tar’ => ‘application/x-tar’,

‘tcl’ => ‘application/x-tcl’,

‘tex’ => ‘application/x-tex’,

‘texinfo’ => ‘application/x-texinfo’,

‘texi’ => ‘application/x-texinfo’,

‘t’ => ‘application/x-troff’,

‘tr’ => ‘application/x-troff’,

‘roff’ => ‘application/x-troff’,

‘man’ => ‘application/x-troff-man’,

‘me’ => ‘application/x-troff-me’,

‘ms’ => ‘application/x-troff-ms’,

‘ustar’ => ‘application/x-ustar’,

‘src’ => ‘application/x-wais-source’,

‘xhtml’ => ‘application/xhtml+xml’,

‘xht’ => ‘application/xhtml+xml’,

‘zip’ => ‘application/zip’,

‘au’ => ‘audio/basic’,

‘snd’ => ‘audio/basic’,

‘mid’ => ‘audio/midi’,

‘midi’ => ‘audio/midi’,

‘kar’ => ‘audio/midi’,

‘mpga’ => ‘audio/mpeg’,

‘mp2’ => ‘audio/mpeg’,

‘mp3’ => ‘audio/mpeg’,

‘aif’ => ‘audio/x-aiff’,

‘aiff’ => ‘audio/x-aiff’,

‘aifc’ => ‘audio/x-aiff’,

‘m3u’ => ‘audio/x-mpegurl’,

‘ram’ => ‘audio/x-pn-realaudio’,

‘rm’ => ‘audio/x-pn-realaudio’,

‘rpm’ => ‘audio/x-pn-realaudio-plugin’,

‘ra’ => ‘audio/x-realaudio’,

‘wav’ => ‘audio/x-wav’,

‘pdb’ => ‘chemical/x-pdb’,

‘xyz’ => ‘chemical/x-xyz’,

‘bmp’ => ‘image/bmp’,

‘gif’ => ‘image/gif’,

‘ief’ => ‘image/ief’,

‘jpeg’ => ‘image/jpeg’,

‘jpg’ => ‘image/jpeg’,

‘jpe’ => ‘image/jpeg’,

‘png’ => ‘image/png’,

‘tiff’ => ‘image/tiff’,

‘tif’ => ‘image/tiff’,

‘djvu’ => ‘image/vnd.djvu’,

‘djv’ => ‘image/vnd.djvu’,

‘wbmp’ => ‘image/vnd.wap.wbmp’,

‘ras’ => ‘image/x-cmu-raster’,

‘pnm’ => ‘image/x-portable-anymap’,

‘pbm’ => ‘image/x-portable-bitmap’,

‘pgm’ => ‘image/x-portable-graymap’,

‘ppm’ => ‘image/x-portable-pixmap’,

‘rgb’ => ‘image/x-rgb’,

‘xbm’ => ‘image/x-xbitmap’,

‘xpm’ => ‘image/x-xpixmap’,

‘xwd’ => ‘image/x-xwindowdump’,

‘igs’ => ‘model/iges’,

‘iges’ => ‘model/iges’,

‘msh’ => ‘model/mesh’,

‘mesh’ => ‘model/mesh’,

‘silo’ => ‘model/mesh’,

‘wrl’ => ‘model/vrml’,

‘vrml’ => ‘model/vrml’,

‘css’ => ‘text/css’,

‘html’ => ‘text/html’,

‘htm’ => ‘text/html’,

‘asc’ => ‘text/plain’,

‘txt’ => ‘text/plain’,

‘rtx’ => ‘text/richtext’,

‘rtf’ => ‘text/rtf’,

‘sgml’ => ‘text/sgml’,

‘sgm’ => ‘text/sgml’,

‘tsv’ => ‘text/tab-separated-values’,

‘wml’ => ‘text/vnd.wap.wml’,

‘wmls’ => ‘text/vnd.wap.wmlscript’,

‘etx’ => ‘text/x-setext’,

‘xsl’ => ‘text/xml’,

‘xml’ => ‘text/xml’,

‘mpeg’ => ‘video/mpeg’,

‘mpg’ => ‘video/mpeg’,

‘mpe’ => ‘video/mpeg’,

‘qt’ => ‘video/quicktime’,

‘mov’ => ‘video/quicktime’,

‘mxu’ => ‘video/vnd.mpegurl’,

‘avi’ => ‘video/x-msvideo’,

‘movie’ => ‘video/x-sgi-movie’,

‘ice’ => ‘x-conference/x-cooltalk’,

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/569902.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

namespace命名空间的使用

一、何为命名空间 PHP 命名空间(namespace)是在PHP 5.3中加入的。“什么是命名空间?从广义上来说,命名空间是一种封装事物的方法。在很多地方都可以见到这种抽象概念。例如,在操作系统中目录用来将相关文件分组,对于目录中的文件…

JS关键字和保留字汇总(小记)

ECMA-262 描述了一组具有特定用途的关键字。这些关键字可用于表示控制语句的开始或结束,或者用于执行特定操作等。按照规则,关键字也是语言保留的,不能用作标识符。以下就是ECMAScript的全部关键字(带*号上标的是第5 版新增的关键…

HTML DOM文档对象查找元素的方法

一、HTML DOM 节点 在 HTML DOM (Document Object Model) 中 , 每一个元素都是 节点: 文档是一个文档节点。所有的HTML元素都是元素节点。所有 HTML 属性都是属性节点。文本插入到 HTML 元素是文本节点。注释是注释节点。 二、Document 对象 当浏览器载入 HTML 文档, 它就会…

MySQL的外键约束

一、MySQL外键 外键表示一个表中的一个字段被另一个表中的一个字段引用。外键对相关表中的数据造成了限制,使MySQL的能够保持参照完整性。只有InnoDB类型的表才可以使用外键。    1、外键的好处   可以使得两张表关联,保证数据的一致性和实现一些…

快速排序(C语言)

快速排序 快速排序是一种不稳定排序,它的时间复杂度为O(nlgn),最坏情况为O(n2);空间复杂度为O(nlgn)。 这种排序方式是对于冒泡排序的一种改进,它采用分治模式,将一趟排序的数据分割成独立的两部分,其中一…

前端页面-不可编辑控制

1. spring-form 库的使用和不可编辑控制 <form:input path"title" htmlEscape"false" class"form-control required"/> 页面元素不可编辑控制 readOnly“true”&#xff1b; 对input&#xff0c;textArea 有效 disadbled"true";…

js+获取当前域名及跳转、下载操作

一、js获取当前域名 1、方法一 var domain document.domain;2、方法二 var domain window.location.host;3、注意问题   由于获取到的当前域名不包括 http://&#xff0c;所以把获取到的域名赋给 a 标签的 href 时&#xff0c;别忘了加上 http://&#xff0c;否则单击链…

哈希表,哈希算法(C语言)

哈希表 哈希表&#xff0c;又称散列表&#xff0c;常用于在海量数据中查找数据 哈希表中元素是由哈希函数确定的。将数据元素的关键字key作为自变量&#xff0c;通过一定的函数关系H(称为哈希函数)&#xff0c;计算出的值&#xff0c;即为该元素的存储地址。其优点是&#xf…

【OP放大器】在不拆开OP放大器的情况下查一查它是否坏掉或饱和。

用高阻抗的示波器观测工作中的同相电压&#xff0b;点电压即可。 观测虚拟短路的点时&#xff0c;掌握工作中的诸条件&#xff0c;例如电源电压或周围温度的变化、负载的变动、对各种输入信号OP放大器及周边电路是否正常工作等&#xff0c;就可以得到很好的线索。转载于:https:…

Apache配置多个监听端口和访问网站的方法

一个apache服务器的vhost.conf配置文件可以设置Apache监听多个端口&#xff0c;打开Apache的配置文件httpd.conf&#xff0c;在 Listen 80 下面添加多个监听端口如&#xff1a; Listen 8010 Listen 8020 Listen 8030 这样就在vhosts.conf配置文件中增加了8010、8020和8030端…

图的邻接矩阵(C语言)

邻接矩阵 无向图和有向图在邻接矩阵中的表示方法&#xff1a; 无向图和有向图大同小异&#xff0c;在这里只以无向图为例&#xff0c;代码部分通过简单调整即可对应编译有向图 邻接矩阵数据类型定义 #define MaxVertices 100 //定义最大容量 typedef struct{ //包含权的邻…

MySQL安装成功后dos命令行设置密码

我在windows7上安装好MySQL数据库后&#xff0c;添加了MySQL的安装目录D:\wamp\MySQL\bin;到环境变量中&#xff0c;这样就可以在任何目录下使用mysql。为了安全性考虑&#xff0c;需要设置MySQL数据库的密码。通过dos命令行设置的方式如下&#xff1a; 一、进入dos命令行 按…

图的邻接表表示法(C语言)

邻接表 邻接表数据结构类型如下&#xff1a; #define MaxVertices 100 typedef struct node{ //边表 int adjvex;node* next; }EdgeNode; typedef struct{ //顶点表 int vertex; EdgeNode* edgenext; }VertexNode; typedef VertexNode AdjList[MaxVertices];//…

最小生成树构造算法--Prim算法,Kruskal算法(C语言)

最小生成树 最小生成树&#xff08;minimum spanning tree&#xff09;是由n个顶点&#xff0c;n-1条边&#xff0c;将一个连通图连接起来&#xff0c;且使权值最小的结构。 最小生成树可以用Prim&#xff08;普里姆&#xff09;算法或kruskal&#xff08;克鲁斯卡尔&#xff…

屏蔽烦人的百度搜索热点

开发时&#xff0c;在百度上搜索一些资料时&#xff0c;总是不经意看到百度搜索热点的一些新闻&#xff0c;然后经不住诱惑的标题就不经意间点了进去&#xff0c;然后就是连锁反应了。。等再次回到开发时已经是半小时之后的事了。又要把想要的东西重新捋一遍&#xff0c;导致开…

矩阵在竞赛中的应用

矩阵乘法代码&#xff1a; struct matrix {int n, m;int a[100][100]; }; // A.m B.n matrix matrix_mul(matrix A, matrix B) {matrix C;C.n A.n;C.m B.m;for (int i 0; i < A.n; i) {for (int j 0; j < B.m; j) {C.a[i][j] 0;for (int k 0; k < A.m; k) {C.a…

连通图遍历策略之广度优先搜索(C语言)

广度优先搜素&#xff08;BFS&#xff09; 广度优先搜索(又称宽度优先搜索)算法是最简便的图的搜索算法之一&#xff0c;该算法属于一种盲目搜寻法&#xff0c;目的是系统地展开并检查图中的所有节点&#xff0c;以找寻结果。换句话说&#xff0c;它并不考虑结果的可能位置&am…

多条件组合查询

一、效果图 二、前端代码 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8" /> <title>Jquery分类</title> <script src"http://libs.baidu.com/jquery/1.7.2/jquery.min.js"></sc…

“三次握手,四次挥手”你真的懂吗?

记得刚毕业找工作面试的时候&#xff0c;经常会被问到&#xff1a;你知道“3次握手&#xff0c;4次挥手”吗&#xff1f;这时候我会“胸有成竹”地“背诵”前期准备好的“答案”&#xff0c;第一次怎么怎么&#xff0c;第二次……答完就没有下文了&#xff0c;面试官貌似也没有…

连通图遍历策略之深度优先搜索(C语言)

深度优先搜素&#xff08;DFS&#xff09; 深度优先搜索是一种在开发爬虫早期使用较多的方法。它的目的是要达到被搜索结构的叶结点(即那些不包含任何超链的HTML文件) 。在一个HTML文件中&#xff0c;当一个超链被选择后&#xff0c;被链接的HTML文件将执行深度优先搜索&#…