【问题标题】:response.setContentType("APPLICATION/OCTET-STREAM")response.setContentType("APPLICATION/OCTET-STREAM")
【发布时间】:2014-06-08 18:25:44
【问题描述】:

我有一个非常基本的问题:

我正在编写代码以使用 JSP 和 Servlet 下载 CSV 文件。我从互联网论坛获得了代码,它运行良好,但我试图理解以下两行的重要性

response.setContentType("APPLICATION/OCTET-STREAM");
response.setHeader("Content-Disposition", "attachment; filename=\""
            + filename + "\"");

现在第一行response.setContentType - 根据我的理解,它告诉浏览器需要从服务器获得什么样的数据。我的问题是它告诉浏览器价值application/octet-stream。我看到这被用于下载各种文件。如果此行通知浏览器该页面将下载文件,下一行会导致什么不同response.setHeader 将附件作为参数。

谁能告诉我这两行文件下载的意义吗?

问候塔伦

【问题讨论】:

    标签: java jsp content-type


    【解决方案1】:

    第一行描述数据类型。

    response.setContentType("APPLICATION/OCTET-STREAM");
    

    APPLICATION/OCTET-STREAM 代表二进制数据。通过指定实际的文件类型可能更精确。对于图像,它可以是image/png。如果浏览器知道确切的文件类型,它可能会直接显示该文件。

    response.setHeader("Content-Disposition", "attachment; filename=\"" + filename + "\"");
    

    这表示“甚至不要尝试显示文件,只需保存文件。”它还建议一个文件名。

    更新 维基百科对 mime-types 和 content-disposition 有更好的解释:

    http://en.wikipedia.org/wiki/MIME#Content-Disposition

    【讨论】:

    • 哇 精彩的解释,简短而准确。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-28
    • 1970-01-01
    • 1970-01-01
    • 2010-11-04
    • 1970-01-01
    • 2013-04-12
    • 2014-11-25
    相关资源
    最近更新 更多