header中Content-Disposition的作用与使用方法


2023年12月23日发(作者:whiskey)

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 保存时的默认文件名

服务端向客户端游览器发送文件时,如果该文件是浏览器支持的类型,一般会默认使用浏览器打开,比如文本文件、图片文件等,它们会直接在显示在浏览器中,并不会显示下载文件对话框。如果需要提示用户保存,就要利用Content-Disposition字段来告知浏览器,这个文件需要让用户保存起来。

使用PHP可以这样操作,代码如下:

Header("Content-Disposition","attachment;filename=");

这样浏览器就会弹出下载对话框并提示下载后保存还是打开。

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参数虽然也可以包含路径信息,但User-Agnet会忽略掉这些信息,只会把路径信息的最后一部分做为文件名。当你在响应类型为application/octet-

stream情况下使用了这个头信息的话,那就意味着你不想直接显示内容,而是弹出一个"文件下载"的对话框,接下来就是由用户来决定"打开"还是"保存" 。


本文发布于:2024-09-22 20:27:26,感谢您对本站的认可!

本文链接:https://www.17tex.com/fanyi/26813.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:文件   下载   浏览器
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议