通过Spring的文件下载显示在浏览器中

时间:2018-03-08 22:21:13

标签: spring http

我希望我的Web服务将数据文件返回给调用者,以便他们可以保存在他们的文件系统中。问题是,它不是显示弹出窗口来保存文件,而是显示在浏览器中。以下代码说明了问题:

@GetMapping(value = "/test", produces = "text/plain")
public void testDownload(HttpServletResponse response, Writer responseWriter) {
try {
    for (int i = 0; i < 10; i++) {
        responseWriter.write("Hello World, this is row " + i + "\n");
    }
    responseWriter.flush();
    responseWriter.close();
} catch (IOException e) {
    e.printStackTrace();
}
response.setContentType("text/txt");
response.setHeader("Content-Disposition", "attachment; filename=HelloWorld.txt");
}

运行此结果会导致返回的十行显示在浏览器中。我假设我在回复中遗漏了一些东西,但我无法弄清楚是什么。上面显示的代码实现了this question关于文件下载的已接受答案(即,使用outputStream,设置ContentType)。这足以将数据返回给调用者,但这不是我的问题。我需要确保它不会显示在浏览器中,而是提示用户保存它。

0 个答案:

没有答案