我需要从控制器提供静态HTML文件,以强制用户下载。我想创建POST控制器以强制返回HTML。最初,我创建了一个简单的GET方法来提供静态html文件供下载。
@GetMapping(
value = "/get-file",
produces = {MediaType.APPLICATION_OCTET_STREAM_VALUE}
)
public @ResponseBody
byte[] getFile(HttpServletResponse response) throws IOException {
response.setHeader("Content-Disposition", "attachment; filename=\"test.html\"");
InputStream in = getClass()
.getResourceAsStream("/the-file-name.html");
return IOUtils.toByteArray(in);
}
一切正常。当我将GET方法更改为POST时:
@GetMapping -> @PostMapping
html文件不会强制下载,而是显示在浏览器中。 商业案例是强制下载(不是右键单击页面并另存为)