Pau*_*per 383 browser http download http-headers
在HTTP标准说:
如果在带有application/octet-stream内容类型的响应中使用此标题[Content-Disposition:attachment],则隐含的建议是用户代理不应显示响应,而是直接输入`save response as .. '对话.
我读到了
Content-Type: application/octet-stream
Content-Disposition: attachment
Run Code Online (Sandbox Code Playgroud)
不过,我本来以为Content-Type
会application/pdf
,image/png
等等.
Content-Type: application/octet-stream
如果我想要浏览器下载文件,我应该有吗?
Jon*_*nna 889
没有.
如果您知道,内容类型应该是已知的内容.application/octet-stream
在RFC 2046中被定义为"任意二进制数据",并且这里有一个明确的重叠,它适用于将其唯一预期目的保存到磁盘的实体,并且从那一点开始,在任何"webby"之外.或者从另一个方向看它; 应用程序/八位字节流唯一可以安全地做的就是将它保存到文件中,并希望其他人知道它的用途.
您可以结合使用Content-Disposition
其他内容类型,例如image/png
甚至text/html
表示您想要保存而不是显示.以前有些浏览器会忽略它,text/html
但我认为这是很久以前的事情(我很快就要睡觉了,所以我不打算开始测试一大堆浏览器现在;也许稍后).
RFC 2616还提到了扩展令牌的可能性,而且现在大多数浏览器都认为inline
你确实希望在可能的情况下显示实体(也就是说,如果它是浏览器知道如何显示的类型,那么它就没有选择了) .这当然是默认行为,但这意味着您可以包含filename
标题的一部分,浏览器将使用(可能需要进行一些调整,以便文件扩展名与所讨论的内容类型的本地系统规范相匹配,可能不会)作为用户尝试保存的建议.
因此:
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="picture.png"
Run Code Online (Sandbox Code Playgroud)
意思是"我不知道这到底是什么.请把它保存为文件,最好是名为picture.png".
Content-Type: image/png
Content-Disposition: attachment; filename="picture.png"
Run Code Online (Sandbox Code Playgroud)
表示"这是PNG图像.请将其保存为文件,最好命名为picture.png".
Content-Type: image/png
Content-Disposition: inline; filename="picture.png"
Run Code Online (Sandbox Code Playgroud)
表示"这是PNG图像.除非您不知道如何显示PNG图像,否则请显示.否则,或者如果用户选择保存它,我们建议您将文件名为picture.png保存为".
在那些识别出inline
某些人总是会使用它的浏览器中,而其他人会在用户选择"保存链接为"时使用它,但如果他们在查看时选择"保存"则不会使用它(或者至少IE曾经是这样,它几年前可能已经改变了).
归档时间: |
|
查看次数: |
473420 次 |
最近记录: |