【发布时间】:2017-06-08 16:39:09
【问题描述】:
我想在访问该网址时打开浏览器内置弹窗下载文件?
http://localhost:8080/retrieval
现在在服务器端我有:
router.get("/retrieval").handler(rc -> {
rc.response().sendFile("J1.txt");
});
相反,我在浏览器中看到了文件的内容。我应该怎么办?是否有一些特定的标头需要发送?
谢谢
【问题讨论】:
我想在访问该网址时打开浏览器内置弹窗下载文件?
http://localhost:8080/retrieval
现在在服务器端我有:
router.get("/retrieval").handler(rc -> {
rc.response().sendFile("J1.txt");
});
相反,我在浏览器中看到了文件的内容。我应该怎么办?是否有一些特定的标头需要发送?
谢谢
【问题讨论】:
抱歉我发现了:)
解决方案正如我所想的那样使用一些标题:
rc.response()
.putHeader(HttpHeaders.CONTENT_TYPE, "text/plain")
.putHeader("Content-Disposition", "attachment; filename=\"J1.txt\"")
.putHeader(HttpHeaders.TRANSFER_ENCODING, "chunked")
.sendFile("J1.txt").end();
【讨论】: