Content-Disposition 的使用方法

作者:Nonetracer 来源:Nonetracer的博客 日期:2010-1-12

在进行 Web 开发时,可能遇到遇到以下几种需求:

  • 希望某类或者某已知 MIME 类型的文件(比如:*.gif;*.txt;*.htm)能够在访问时弹出“文件下载”对话框。
  • 希望客户端下载时以指定文件名显示。
  • 希望某文件直接在浏览器上显示而不是弹出文件下载对话框。

对于上面的需求,使用 Content-Disposition 属性就可以解决。下面是代码示例:

response.setHeader("Content-disposition", "attachment;filename=" + fileName)
  • Content-disposition 为属性名。
  • attachment 表示以附件方式下载。如果要在页面中打开,则改为 inline
  • filename 如果为中文,则会出现乱码。解决办法有两种:
    • 使用 fileName = new String(fileName.getBytes(), "ISO8859-1") 语句
    • 使用 fileName = HttpUtility.UrlEncode(filename, System.Text.Encoding.UTF8) 语句
相关文章