我在用servlet写了一个下载功能,先把文件打包成RAR,然后通过SERVLET下载,但遇到了无法下载的问题。
出现问题的截图:
代码是:
public void exportDown(HttpRequest request, HttpServletResponse response, User user) throws ServletException, IOException { ExportLogApp app = new ExportLogApp( "from Test1 where 1=1 and id <1001 "); int i = app.exportDownRAR(user.getId(), null, null); if (i == app.LOG) { user.addLog("数据交换", "导出下载数据", "用户[" + user.getId() + "]导出数据成功!"); String filePath = app.getRARpath_save() + File.separator + app.getRARname_save() + ".rar"; filePath = filePath.replaceAll("/", "\\\\"); // 定义输出类型(下载) response.setContentType("application/force-download"); // 定义输出文件头 response.setHeader("Content-Disposition", "attachment;filename=\"" + app.getRARname_save() + ".rar\""); File file = new File(filePath); int len = (int) file.length(); byte[] buf = new byte[len]; FileInputStream fis = new FileInputStream(file); OutputStream out = response.getOutputStream(); len = fis.read(buf); out.write(buf, 0, len); out.flush(); out.close(); fis.close(); file.delete(); } else if (i == app.LOG_ERROR) { user.addLog("数据交换", "导出下载数据", "用户[" + user.getId() + "]导出数据失败!"); PrintWriter out = response.getWriter(); out.println("<script language='javascript'>"); out.println("alert('导出数据出错,请联系管理员!');"); out.println("window.location.href='../expert/expert_account.jsp';"); out.println("window.close()"); out.println("</script>"); } else if (i == app.NO_DATA) { } }
请帮我解答下,为什么会这样,我测试用的浏览器是IE7.