Servlet:强制浏览器(谷歌浏览器)立即打开“另存为”对话框

时间:2014-02-22 00:15:11

标签: java javascript google-chrome java-ee servlets

我有一个servlet(Java EE),它将大型pdf文件返回到UI /浏览器(HTML和JavaScript)以供下载。它需要服务器生成文件10-20秒,所以我试图尽快弹出另存为对话框,以避免浏览器滞后,用户混淆,等待等等。

我只想发送标题等只是为了建立连接,当服务器完成其工作时,我们会刷新剩余的有效负载。

我在标题和刷新缓冲区后立即发送。这在firefox中运行良好,浏览器显示对话框,从而消除了浏览器等待并创建了下载已经开始的错觉,这对于chrome不起作用。

任何帮助表示感谢。

2 个答案:

答案 0 :(得分:1)

我通过设置内容处置标头,非Java语法

来修复它
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");

答案 1 :(得分:0)

response.setContentType("application/octet-stream");