Tomcat下载压缩后的jar文件无效

时间:2015-11-15 12:10:47

标签: java tomcat jar download zip

我写了一个用于下载文件的Tomcat Servlet。 这是代码:

String fileName = request.getParameter("file");
File file = new File(System.getenv("CATALINA_HOME") + File.separator + fileName);

response.setStatus(HttpServletResponse.SC_OK);
response.setContentType("application/octet-stream");
response.setContentLength((int) file.length());
response.setHeader("Content-Transfer-Encoding", "binary");
response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");

long start = System.currentTimeMillis();

OutputStream out = response.getOutputStream();
long written = FileUtils.copyFile(file, out);
out.flush();

long end = System.currentTimeMillis();
System.out.println(written + " bytes written in " + (end - start) + "ms");

我使用Firefox下载文件(localhost:8080 / download?file = test.txt)。 在几乎所有情况下,broser立即显示下载对话框,服务器控制台显示“以118ms写入的4342132字节”。

但每当我想下载包含.jar文件的.zip文件时,浏览器显示下载对话框最多需要20秒。有时,下载事件已中止。但是服务器日志显示“用129ms写的4883055字节”。

当我使用没有.jar文件的.zip文件时,一切正常。怎么可能????

这不是Firefox特有的问题。任何浏览器(FF,Chrome,Opera,...)都会出现此问题。

0 个答案:

没有答案