java 下载文件时,当浏览器弹出下载对话框,后面的代码不能执行?该怎么解决.... 5
PoiExcelUtil.createCell(rowI,5,cellStyleI).setCellValue(sdf.format(list.get(i).getCre...
PoiExcelUtil.createCell(rowI, 5, cellStyleI).setCellValue(
sdf.format(list.get(i).getCreateDate()));
PoiExcelUtil.createCell(rowI, 6, cellStyleI).setCellValue(
list.get(i).getContactUserCompany());
}
sheet.setColumnWidth(3, 20 * 256);
sheet.setColumnWidth(4, 40 * 256);
sheet.setColumnWidth(5, 20 * 256);
sheet.setColumnWidth(6, 50 * 256);
wb.write(os);
os.close();
json.setSuccess(true);
json.setMsg("导出成功");
downLoad(filePath, targetFile, targetName);//-----这是开始下载
-----------------------------------------------从这之后后面的代码就不执行了?求解决
} catch (Exception e) {
e.printStackTrace();
log.error("export remark wrong" + e);
json.setMsg("导出失败");
}
super.writeJson(json);
}
----------------------------下载代码---------------
void downLoad(String realPath, File file, String fileName)
throws IOException {
HttpServletResponse response = ServletActionContext.getResponse();
PrintWriter out = response.getWriter();
response.resetBuffer();
response.setContentType("application/vnd.ms-excel;charset=utf-8");
response.setHeader("Content-Disposition", "attachment; filename="
+ fileName);
// 写出流信息
int b = 0;
try {
// 这里的 response 就是你 servlet 的那个传参进来的 response
FileInputStream fis = new FileInputStream(file);
while ((b = fis.read()) != -1) {
out.write(b);
}
} catch (IOException e) {
throw e;
} finally {
out.close();
} 展开
sdf.format(list.get(i).getCreateDate()));
PoiExcelUtil.createCell(rowI, 6, cellStyleI).setCellValue(
list.get(i).getContactUserCompany());
}
sheet.setColumnWidth(3, 20 * 256);
sheet.setColumnWidth(4, 40 * 256);
sheet.setColumnWidth(5, 20 * 256);
sheet.setColumnWidth(6, 50 * 256);
wb.write(os);
os.close();
json.setSuccess(true);
json.setMsg("导出成功");
downLoad(filePath, targetFile, targetName);//-----这是开始下载
-----------------------------------------------从这之后后面的代码就不执行了?求解决
} catch (Exception e) {
e.printStackTrace();
log.error("export remark wrong" + e);
json.setMsg("导出失败");
}
super.writeJson(json);
}
----------------------------下载代码---------------
void downLoad(String realPath, File file, String fileName)
throws IOException {
HttpServletResponse response = ServletActionContext.getResponse();
PrintWriter out = response.getWriter();
response.resetBuffer();
response.setContentType("application/vnd.ms-excel;charset=utf-8");
response.setHeader("Content-Disposition", "attachment; filename="
+ fileName);
// 写出流信息
int b = 0;
try {
// 这里的 response 就是你 servlet 的那个传参进来的 response
FileInputStream fis = new FileInputStream(file);
while ((b = fis.read()) != -1) {
out.write(b);
}
} catch (IOException e) {
throw e;
} finally {
out.close();
} 展开
4个回答
展开全部
你现在这么直接执行可能是在页面没有返回的super.writeJson(json);信息你就认为不执行了,你先进行调试一下 ,看看到哪步卡住了。我怀疑很可能是super.writeJson(json);这个用的哪里不对可能没返回给页面信息。你可以在这个上一步进行一下打印随意信息看看能不能到这块。确定一下是哪步停住了,然后针对的再找问题。
更多追问追答
追问
浏览器弹出下载对话框,就不执行那了。 不加下载没事
追答
那你下载的那块代码能执行成功吗?跟一下看看下载代码是不是到哪就不往下执行了?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
后台报错了吗?
更多追问追答
追问
后台没有错!!!!
追答
既然下载页面弹出来了,那么肯定是在FileInputStream fis = new FileInputStream(file);while ((b = fis.read()) != -1) {out.write(b);}在这段代码内有问题了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你好,请问你的这个问题解决了吗?我也遇到同样的情况。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
打开浏览器的调试,然后看看哪里吃了问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询