本人用EasyExcel导出文件响应流为空是什么原因?我用postman测试有响应,浏览器没有
try {
// 附件名称和格式
// response.addHeader("import", "500");
response.reset();
response.setContentType("application/octet-stream");
response.setCharacterEncoding("UTF-8");
String fileName = URLEncoder.encode("注册安全工程师管理导入模板", "UTF-8");
response.addHeader("Content-Disposition","attachment;filename=" + fileName + ".xlsx");
// 转为二进制流进行吐出
ServletOutputStream os = response.getOutputStream();
// xk.write(os);
EasyExcel.write(os,SatetyEngineeManagementImport.SEImportErrorWriteData.class).autoCloseStream(false).needHead(false).inMemory(true)
.withTemplate(new File(ConchConfig.getTemplatePath()+"/" + "注册安全工程师管理导入模板.xlsx")).sheet("导入模板").doWrite(errorWriteDataList);
os.flush();
/*os.close();*/
} catch (Exception e) {
log.error("Excel error", e);
}
我怀疑是不是你没关闭的原因。
用的哪个浏览器?换个浏览器再测试下?
从postman上可用看出来你的接口响应时间是3.18s,还是比较慢。而在浏览器中没有响应,有可能是前段或中间nginx设置了超时时间,导致前段收不到数据。比如,你nginx设置的超时断开1s(也就是1s没有响应完,前端接口也不用等了),而你的接口要3s才返回数据,但是nginx已经断开了,前端是收不到数据的。 你这个问题可排查一下反向代理服务器的配置。
easyExcel导出文件为空解决
如有帮助,望采纳
https://blog.csdn.net/fly_west/article/details/120943765
对比下两边的请求参数是否一致,我看你是本地的服务器,你试试本地debug,看看请求有没有到你的后端。
自动关闭流怎么是false?
可以参考:https://download.csdn.net/download/gongjin28_csdn/85324396,这里面有EasyExcel示例,有问题可以私信,知无不答,答无不尽