admin管理员组文章数量:1535070
通过流进行下载(弊端:不可关闭连接或跳转页面)
public void saveBatchDownloadFile(String taskNumber, HttpServletResponse response){
BufferedInputStream bufferStream = null;
ServletOutputStream outputStream = null;
File file = new File(taskNumber + ".zip");
try {
FileInputStream fileInputStream = new FileInputStream(file);
outputStream = response.getOutputStream();
bufferStream = new BufferedInputStream(fileInputStream, 1024 * 10);
int read = 0;
byte[] buf = new byte[1024 * 10];
while((read = bufferStream.read(buf, 0, 1024 * 10)) != -1){
outputStream.write(buf, 0, read);
}
} catch (Exception e) {
log.error("文件下载异常信息:{}", e);
}finally {
try {
outputStream.flush();
outputStream.close();
bufferStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
file.delete();
}
}
浏览器强制下载(优点:可关闭链接或跳转页面,将下载任务交给浏览器)
public void saveBatchDownloadFile(String taskNumber, HttpServletResponse response){
BufferedInputStream bufferStream = null;
ServletOutputStream outputStream = null;
File file = new File(taskNumber + ".zip");
try {
response.reset();
String currentDate = DateUtil.getCurrentDateYMD();
response.setCharacterEncoding("utf-8");
response.setContentType("multipart/form-data");
response.setContentLengthLong(file.length());
// 使浏览器下载
String name = currentDate +"-协议文件.zip";
String fileName = new String(name.getBytes("utf-8"),"ISO-8859-1");
response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
FileInputStream fileInputStream = new FileInputStream(file);
outputStream = response.getOutputStream();
bufferStream = new BufferedInputStream(fileInputStream);
int read = 0;
byte[] buf = new byte[100];
while((read = bufferStream.read(buf)) != -1){
outputStream.write(buf, 0, read);
}
} catch (Exception e) {
log.error("文件下载异常信息:{}", e);
return;
}finally {
try {
bufferStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
file.delete();
}
}
版权声明:本文标题:File - 浏览器文件下载的两种方式 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1726895214a1089068.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论