response.setContentType(“ APPLICATION / OCTET-STREAM”)

问题描述 投票:2回答:1

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

我正在编写代码以使用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个回答
6
投票

第一行描述了数据类型。

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

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

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

这是说“甚至不要尝试显示文件,只需保存文件即可。”它还建议使用文件名。

更新维基百科上有关于mime类型和内容处置的更好解释:

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

© www.soinside.com 2019 - 2024. All rights reserved.