Content-Disposition干吗用

2012年4月2日 发表评论 阅读评论

我现在已经不记得当时是怎么找到Content-Disposition这个可选的HTTP Response Header了,好像是response content filename,但好像又不是,不过这都不重要了,重要的是我已经知道了Content-Disposition能够满足我我的需求,其实我就是想当你从我的服务器上动态的下载诸如Word、Excel的时候,我能够给你提供一个默认的、可读的文件名。而Content-Disposition就是干这个用的。

根据RFC2183,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情况下使用了这个头信息的话,那就意味着你不想直接显示内容,而是弹出一个”文件下载”的对话框,接下来就是由你来决定“打开”还是“保存”了。

当然如果希望能跟详细的了解一下,不妨看看

  • RFC 2183 – Communicating Presentation Information in Internet Messages: The Content-Disposition Header Field
  • How To Raise a “File Download” Dialog Box for a Known MIME Type
  • HTTP/1.1 Appendices

这些长篇大论的东西了。


转载请注明来自:[MSN Spaces]http://msn.shandian.biz/332.html

  1. 本文目前尚无任何评论.