php header中Content-disposition用法详细
发布:smiling 来源: PHP粉丝网 添加日期:2013-12-02 16:25:39 浏览: 评论:0
Content-disposition 是 MIME 协议的扩展,MIME 协议指示 MIME 用户代理如何显示附加的文件。Content-disposition其实可以控制用户请求所得的内容存为一个文件的时候提供一个默认的文件名,文件直接在浏览器上显示或者在访问时弹出文件下载对话框。
格式说明:content-disposition = "Content-Disposition" ":" disposition-type *( ";" disposition-parm )
字段说明:
Content-Disposition为属性名
disposition-type是以什么方式下载,如attachment为以附件方式下载
disposition-parm为默认保存时的文件名
服务端向客户端游览器发送文件时,如果是浏览器支持的文件类型,一般会默认使用浏览器打开,比如txt、jpg等,会直接在浏览器中显示,如果需要提示用户保存,就要利用Content-Disposition进行一下处理,关键在于一定要加上attachment:
Response.AppendHeader("Content-Disposition","attachment;filename=FileName.txt");
备注:这样浏览器会提示保存还是打开,即使选择打开,也会使用相关联的程序比如记事本打开,而不是IE直接打开了。
Content-Disposition就是当用户想把请求所得的内容存为一个文件的时候提供一个默认的文件名。具体的定义如下:
- content-disposition = “Content-Disposition” “:”
- disposition-type *( “;” disposition-parm )
- disposition-type = “attachment” | disp-extension-token
- disposition-parm = filename-parm | disp-extension-parm
- filename-parm = “filename” “=” quoted-string
- disp-extension-token = token
- disp-extension-parm = token “=” ( token | quoted-string )
那么由上可知具体的例子:Content-Disposition: attachment; filename=“filename.xls”
当然filename参数可以包含路径信息,但User-Agnet会忽略掉这些信息,只会把路径信息的最后一部分做为文件名。当你在响应类型为application/octet- stream情况下使用了这个头信息的话,那就意味着你不想直接显示内容,而是弹出一个”文件下载”的对话框,接下来就是由你来决定“打开”还是“保存” 了。
注意事项:1.当代码里面使用Content-Disposition来确保浏览器弹出下载对话框的时候,response.addHeader("Content-Disposition","attachment");一定要确保没有做过关于禁止浏览器缓存的操作。如下:
- response.setHeader("Pragma", "No-cache");
- response.setHeader("Cache-Control", "No-cache");
- response.setDateHeader("Expires", 0);
不然会发现下载功能在opera和firefox里面好好的没问题,在IE下面就是不行
Tags: header Content-disposition 用法
相关文章
- ·header 函式的使用(2013-11-27)
- ·php Cannot modify header information-headers already sent by解决办法(2013-12-04)
- ·php header 404错误包含文件出现乱码(2013-12-04)
- ·php header中301/404跳转要注意事项详解(2014-01-11)
- ·php中header("Location:xxx.php")跳转问题(2014-01-19)
- ·php header 404跳转错误页面实例(2014-07-21)
- ·PHP Header下载文件在IE文件名中文乱码问题(2014-09-13)
- ·header() 301重定向实现代码(2014-09-18)
- ·php header函数输入图片IE不显示问题(2014-09-20)
- ·Fatal error: Call to undefined function get_header() in(2014-09-21)
- ·php header()函数实现文件下载的文件,提示被破坏不能打开(2014-09-21)
- ·php header请求重写的一个问题(2014-09-21)
- ·PHP利用header跳转失效解决方法(2014-09-22)
- ·直接用php的header发送404错误页面的方法实例(2015-04-09)
- ·PHP header常用URL地址跳转的几种方法(2015-04-11)
- ·PHP 页面编码声明方法详解(header或meta)(2018-09-15)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)