该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
各位同学好,目前碰到一个问题,Java平台下载大文件下载一部分就结束不能全部下载,有可能是网络问题造成下载中断,请问大家有什么解决办法吗,或者有遇到类似问题的一起讨论一下,下载代码如下:
String fileName = (String) request.getAttribute("fileName");
String absoluteFilePath = (String) request.getAttribute("absoluteFilePath")
File file = new File(absoluteFilePath)
try
try
String ua = request.getHeader("User-Agent").toLowerCase()
if (ua.indexOf("firefox") != -1)
fileName = new String(fileName.getBytes("UTF-8"), "ISO8859-1")
} else {
fileName = URLEncoder.encode(fileName, "UTF-8").replaceAll( "\\+", "%20");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
response.setHeader("Content-Type", "application/octet-stream")
response.setHeader("Content-Length", String.valueOf(file.length()))
response.setHeader("Content-Disposition", "attachment;filename="
+ fileName)
InputStream bis = new FileInputStream(file)
OutputStream bos = new BufferedOutputStream(
response.getOutputStream())
int i = 0
byte[] buffer = new byte[3 * 1024]
while ((i = bis.read(buffer)) != -1)
bos.write(buffer, 0, i);
bis.close();
bos.flush();
bos.close()
} catch (Exception e)
String exName = e.getClass().getName()
if(!exName.endsWith("ClientAbortException")){
e.printStackTrace();
}
} finally {
logger.info("deleting file successfully:" + file.delete());
}