批量下载文件JSP
@Value("#{configProperties['FILE.DOCUMENT_PATH']}")
JcglSystemHelpMapper jcglSystemHelpMapper;
//参数ids : 为前台传的记录id集 (格式:12345,12346,12347)
//响应头的设置
response.setContentType("multipart/form-data");
String billname = "附件包-"+dates;
String agent = request.getHeader("USER-AGENT");
if (agent.contains("MSIE")||agent.contains("Trident")) {
//非IE浏览器的处理:
} catch (Exception e) {
response.setHeader("Content-Disposition", "attachment;fileName=\"" + downloadName + "\"");
ZipOutputStream zipos = null;
zipos.setMethod(ZipOutputStream.DEFLATED); //设置压缩方法
}
//循环将文件写入压缩流
map.put("ids", ids);
for (AuthAttachmentDetail authAttachmentDetail : list) {
System.out.println("filePath==="+filePath);
throw new BusinessException("文件已不存在");
//添加ZipEntry,并ZipEntry中写入文件流
os = new DataOutputStream(zipos);
int length = 0;
}
} catch (IOException e) {
}
//关闭流
os.close();
e.printStackTrace();
调用的dao层(mapper) 以及前台传的参数 根据自己业务来定,目的就是为了能拿到需要批量下载的文件信息(文件名/文件路径等),再进行遍历 做文件流处理。
/**
* @param request
@RequestMapping(value = "downloadPlanFile")
}
* 批量下载
*/
前端代码如下:(前端框架采用的easyui)
//获取选择的记录
_alert('请选择记录');
//开启遮罩(进度条)
var ids = '';
ids += data.id;
}
//下载前的一个业务校验
url : Config.sysUrl +'/xqglReqPlan/isDownloadPlanFile',
success : function(data) {
//回调成功进行下载
}
}