我需要将文件流式传输到Response以保存在最终用户的机器上。该文件是纯文本,所以我可以使用哪些内容类型来防止文本在浏览器中显示?什么内容类型强制下载文字回复?
回答
为了安全起见,确保在所有浏览器一致的行为,它通常是更好地使用这两种:
Content-Type: application/octet-stream
Content-Disposition: attachment;filename=\"My Text File.txt\"
我不认为它的工作方式。
使用Content-Disposition: attachment
表头,但坚持正确的内容类型。
只有当User-Agent是Internet Explorer 6时才发送`Content-Type:application/octet-stream` ... – 2014-06-18 09:52:38
在大多数情况下,下面应该工作:
Content-type: application/octet-stream
Content-Disposition: attachment; filename="myfile.txt"
有浏览器,它仍然显示为文本文件的一些边缘的情况下,但没有主流浏览器会(我说的嵌入在某些MID中的浏览器)。
编辑:当这个答案最初发表,发送MIME类型application/octet-stream
是引起一些浏览器下载的唯一可靠方法。现在在2016年,如果您不需要支持古老的浏览器,则可以安全地指定适当的MIME类型。
您是否需要说谎内容-类型?如果你可以使用Content-Disposition,它应该更好,它应该工作。 – 2008-10-09 11:55:46
根据我的经验,application/octet-stream使得它可以在所有浏览器中更可靠地工作。 – ceejayoz 2008-10-09 12:01:57
相关阅读:[我需要的内容类型:应用程序/八位字节流的文件下载? ](http://stackoverflow.com/q/20508788/95735) – 2016-01-30 20:24:11