java后台批量下载文件并压缩成后台批量下载文件并压缩成zip下载的方法下载的方法
主要为大家详细介绍了java后台批量下载文件并压缩成zip下载的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了java后台批量下载文件并压缩成zip下载的具体代码,供大家参考,具体内容如下
因项目需要,将服务器上的图片文件压缩打包zip,下载到本地桌面。
首先,前端js:
function doQueryPic() {
var picsDate = $("#picsDate").val();
var piceDate = $("#piceDate").val();
var picInst = $("#pic_inst").combotree("getValue");
var svrCode = $("#pic_svr_code").val();
var picsTime = $("#pic_stime").val();
var piceTime = $("#pic_etime").val();
if (svrCode == null) {
$.messager.alert('提示', "请输入交易查询代号");
return;
}else{
$.ajax({
type: "POST",
url: 'queryPic.translog.action',
data: {f_brno:picInst,f_sdate:picsDate,f_edate:piceDate,f_svr_code:svrCode,f_stime:picsTime,f_etime:piceTime},
success: function(rcdata){
if(rcdata.success){
var rows = rcdata.picInfo;
var detailHtml = "<table class='my-form-table' cellpadding='0' cellspacing='0' width='90%' align='center'><thead><tr><th style='width: 5%;text-align: center'><input type='checkbox' onclick='swapCheck()' />全选</th><th style='width: 10%;text-align: center'>日期</th><th style='width: 10%;text-align: center'>有无影像</th><th style='width: 23%;text-align: center'>交易名称</th><th style='width: 10%;text-align: center'>交易状态</th><th style='width: 12%;text-align: center'>设备编号</th><th style='width: 10%;text-align: center'>交易代号</th><th style='width: 10%;text-align: center'>所属机构</th><th style='width: 10%;text-align: center'>交易时间</th></tr></thead><tbody>";
for(var i = 0;i < rows.length;i++){
detailHtml = detailHtml + "<tr><td align='center'><input type='checkbox' name='pictureID' value='"+ rows[i].F_DATE + rows[i].F_ICS_BATCH +"' /></td><td>" + rows[i].F_DATE + "</td><td>" + rows[i].ISHASIMG + "</td><td>" + rows[i].F_TX_NAME + "</td><td>" + rows[i].F_STUS + "</td><td>" + rows[i].F_DEV_ID + "</td><td>" + rows[i].F_SVR_CODE + "</td><td>" + rows[i].F_BRNO + "</td><td>" + rows[i].F_TIME + "</td></tr>";
}
detailHtml = detailHtml + "</tbody></table>";
document.getElementById("details").innerHTML = detailHtml;
}else{
$.messager.alert('提示',rcdata.errmsg);
}
},
error:function(){
alert("查询失败!");
}
});
}
}
以上代码是查询到相关数据后,显示在界面上,然后按客户需要可以自己选择下载哪几条数据保存。
附上CheckBox全选/取消全选js代码
//checkbox 全选/取消全选
var isCheckAll = false;
function swapCheck() {
if (isCheckAll) {
$("input[type='checkbox']").each(function() {
this.checked = false;
});
isCheckAll = false;
} else {
$("input[type='checkbox']").each(function() {
this.checked = true;
});
isCheckAll = true;
}
}
下面代码是用来后台交互的,提示一下,下载文件都不要用ajax来送数据,我之前就是ajax做的,一直没法下载,困扰了一整天后来才发现的,注释部分就是ajax代码,大家作为参考可以看一下:
function downLoadPic() {
var arr = new Array();
var picIDs = document.getElementsByName("pictureID");
for (i = 0; i < picIDs.length; i++) {
if (picIDs[i].checked) {
arr.push(picIDs[i].value);
}
}
if (arr.length <= 0 ) {
$.messager.alert('提示', "无下载内容!");
return;
}else{
$('#formPic').attr('action','downLoadPic.translog.action');
$("#formPic").form('submit',{
onSubmit:function(){
},
success:function(data){
$.messager.alert('提示','图片下载成功','info');
}
});
/**
*$.ajax({
type: "POST",
url: 'downLoadPic.translog.action',
data: {pictureList:JSON.stringify(arr)},
success: function(rcdata){
if(rcdata.success){
$.messager.show({
title : '成功',
msg : rcdata.errmsg
});
}else{
$.messager.alert('提示',rcdata.errmsg);
}
},
error:function(){
alert("查询失败!");
}
}); */
}
}
接下来是后台交互,首先是controller控制层:
/**
* 图片批量下载
* @param request
* @param response
* @return
* @throws IOException
*/
public void downLoadPic(HttpServletRequest request,HttpServletResponse response) throws IOException{