首页新闻招聘找找看知识库

javaweb下载excel表超时,报错Socket closed,怎么解决?有什么好的下载方法?断点续传除外。

0
悬赏园豆:15 [已解决问题]


报错:java.net.SocketException: Socket closed

 

代码:

String filename = "xxx报表"+TimeUtil.getCurrentTime()+".xls";

try {
filename = new String(filename.getBytes("GBK"), "ISO-8859-1");
} catch (UnsupportedEncodingException e) {
logger.error("下载异常");
}


response.addHeader("Content-Disposition", "attachment;filename="+filename);
response.setContentType("application/octet-stream");

OutputStream outputStream = null;

try {
outputStream = response.getOutputStream();

//  wb 是一个excel对象来的,已经有内容
wb.write(outputStream);
outputStream.flush();
outputStream.close();
} catch (IOException e) {
downloadResult = false;
logger.error("下载报表异常:",e);
}finally{……省略……}

luoshifu的主页 luoshifu | 初学一级 | 园豆:87
提问于:2017-10-12 11:27
< >
分享
最佳答案
0

这个异常一般是超时等把连接关掉了,此时写socket就会出现问题

可以服务端保存成文件,返回前端的是连接地址,这样就不会有问题了

收获园豆:15
2012 | 专家六级 |园豆:16520 | 2017-10-12 13:33
   您需要登录以后才能回答,未注册用户请先注册