什么内容类型强制下载文本响应?

Pro*_*ofK 18 asp.net

我需要将文件流式传输到Response以保存在最终用户的计算机上.该文件是纯文本,因此我可以使用哪种内容类型来阻止文本在浏览器中显示?

And*_*ore 25

在大多数情况下,以下应该有效:

Content-type: application/octet-stream
Content-Disposition: attachment; filename="myfile.txt"
Run Code Online (Sandbox Code Playgroud)

有一些边缘情况的浏览器仍会将其显示为文本文件,但主流浏览器都不会(我说的是嵌入在某些MID中的浏览器).


编辑:当这个答案最初发布时,发送Mime-Type application/octet-stream是在某些浏览器中触发下载的唯一可靠方法.现在在2016年,如果您不需要支持古老的浏览器,您可以安全地指定适当的mime类型.


Mun*_*Mun 23

为了安全起见并确保在所有浏览器中保持一致的行为,通常最好同时使用两者:

Content-Type: application/octet-stream
Content-Disposition: attachment;filename=\"My Text File.txt\"
Run Code Online (Sandbox Code Playgroud)

  • 您只需要内容处置,这样您就可以保留相关的内容类型,例如text/plain或其他类型. (4认同)
  • @MattConnolly 如果您不打算使用“Content-Type”标头,您建议在哪里*保留相关的内容类型*? (2认同)

Tom*_*lak 7

我不认为这样做.

使用Content-Disposition: attachment标题,但坚持使用正确的Content-Type.