【发布时间】:2010-09-16 06:10:30
【问题描述】:
我需要将文件流式传输到响应以保存在最终用户的机器上。该文件是纯文本,那么我可以使用什么内容类型来防止文本显示在浏览器中?
【问题讨论】:
标签: asp.net
我需要将文件流式传输到响应以保存在最终用户的机器上。该文件是纯文本,那么我可以使用什么内容类型来防止文本显示在浏览器中?
【问题讨论】:
标签: asp.net
我不认为它是这样工作的。
使用 Content-Disposition: attachment 标头,但坚持使用正确的 Content-Type。
【讨论】:
Content-Type: application/octet-stream...
在大多数情况下,以下应该有效:
Content-type: application/octet-stream
Content-Disposition: attachment; filename="myfile.txt"
有一些边缘浏览器仍会将其显示为文本文件,但主流浏览器都不会(我指的是嵌入在某些 MID 中的浏览器)。
编辑:最初发布此答案时,发送 Mime-Type application/octet-stream 是在某些浏览器中触发下载的唯一可靠方法。现在在 2016 年,如果您不需要支持古老的浏览器,您可以安全地指定正确的 mime-type。
【讨论】:
header() 发送那些。
为了安全起见并确保所有浏览器的行为一致,通常最好同时使用两者:
Content-Type: application/octet-stream
Content-Disposition: attachment;filename=\"My Text File.txt\"
【讨论】:
Content-Type 标头,您建议在哪里保留相关的内容类型?