header中Content-Disposition的作用与使用方法
Content-disposition是MIME协议的扩展,MIME 协议指示 MIME 用户代理如何显示附加的文件。Content-disposition可以控制用户请求所得的内容存为一个文件的时候提供一个默认的文件名(在浏览器上将弹出文件下载对话框)。
格式说明:
content-disposition = "Content-Disposition" ":" disposition-type *( ";" disposition-parm )
字段说明:
Content-Disposition字段名
disposition-type 下载方式,(attachment表示以附件方式下载 )
disposition-parm 保存时的默认文件名
服务端向客户端游览器发送文件时,如果该文件是浏览器支持的类型,一般会默认使用浏览器
php中header是什么意思打开,比如文本文件、图片文件等,它们会直接在显示在浏览器中,并不会显示下载文件对话框。如果需要提示用户保存,就要利用Content-Disposition字段来告知浏览器,这个文件需要让用户保存起来。
使用PHP可以这样操作,代码如下:
Header("Content-Disposition","attachment;");
这样浏览器就会弹出下载对话框并提示下载后保存还是打开。 Content-Disposition在协议中详细定义如下:
content-disposition = "Content-Disposition" ":" disposition-type *( ";" disposition-parm )
这在上面文章中已有详细解释,必须有一个disposition-type,以及0个或多个disposition-parm,多个disposition-parm之间用分号分隔。
disposition-type = "attachment" | disp-extension-token
配置类型:由一个attachment组成或者由一个disp-extension-token组成
disposition-parm = filename-parm | disp-extension-parm
disposition-parm由一个filename-parm或者一个disp-extension-parm组成
filename-parm = "filename" "=" quoted-string
filename-parm由关键字filename、等号和quoted-string组成
disp-extension-token = token
disp-extension-token的格式和token相同
disp-extension-parm = token "=" ( token | quoted-string )
一个 disp-extension-parm 由一个 字符串和等号组成
以上内协议解释出自于RFC 1806。可见,content-disposition不仅可以指示浏览器下载文件时的默认文件名,还有其它一些用处。在此不作过多说明。
示例:Content-Disposition: attachment; filename="filename.xls"
filename参数虽然也可以包含路径信息,但User-Agnet会忽略掉这些信息,只会把路径信息的最后一部分做为文件名。当你在响应类型为application/octet- stream情况下使用了这个头信息的话,那就意味着你不想直接显示内容,而是弹出一个"文件下载"的对话框,接下来就是由用户来决定"打开"还是"保存" 。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论