java 批量下载_JAVA 批量下载.zip

展开全部

/**

* 报表查询模块 ----文件下载流

* @return

* @throws IOException

*/

public InputStream getInputStream() throws IOException {

InputStream ins = new FileInputStream(zipReports());

return ins;

}

/**

* 根据传过来的62616964757a686964616fe58685e5aeb931333337613261报表编号压缩文件为zip

* @param response

* @param serverPath

* @param str

* @throws IOException

*/

public File zipReports() throws IOException{

List srclist = new ArrayList();

String[] pks = ids.split(",");

if(pks.length > 0){

for(String pk : pks){

String[] str = pk.split("\\|");

StatisticalReport obj = new StatisticalReport();

obj.setCendat(str[0]);

obj.setOrgidt(str[1]);

obj.setRep_code(str[2]);

obj.setCurcde(str[3]);

srclist.add(obj);

}

}

StatisticalReport obj = new StatisticalReport();

obj.setReportList(srclist);

//查询要下载的报表文件

List list = statisticalReportService.findReportList(obj);

//获取应用在服务器上的根目录

String path = request.getSession().getServletContext().getRealPath(System.getProperty("file.separator"));

List srcList = new ArrayList();

if(list.size() > 0){

for(StatisticalReport statisticalReport : list){

File file = new File(statisticalReport.getFile_path());

if(file.exists()){

srcList.add(file);

}

}

}

Pim_sysUser user = (Pim_sysUser) session.getAttribute(SysConstant.SESSION_USER_DATA);

File zipfile = new File(path + System.getProperty("file.separator") + user.getLogid() + "REPORT.zip");

if(zipfile.exists()){

zipfile.delete();

zipfile.createNewFile();

}

//FileTools.copyFile(, res.getString("help_path"), newFormatFileName);// 上传文件

ZipUtils.zipFiles(srcList, zipfile);

return zipfile;

}

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.util.List;

import java.util.zip.ZipEntry;

import java.util.zip.ZipOutputStream;

public class ZipUtils {

/**

* 将多个Excel打包成zip文件

*

* @param srcfile

* @param zipfile

*/

public static void zipFiles(List srcfile, File zipfile) {

byte[] buf = new byte[2048];

try {

// Create the ZIP file

// Compress the files

if(srcfile.size() > 0){

// 创建ZipOutputStream类对象

ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipfile));

for (int i = 0; i < srcfile.size(); i++) {

File file = srcfile.get(i);

FileInputStream in = new FileInputStream(file);

// Add ZIP entry to output stream.

out.putNextEntry(new ZipEntry(file.getName()));// 写入此目录的Entry 创建新的进入点

// Transfer bytes from the file to the ZIP file

int len;

while ((len = in.read(buf)) > 0) {

out.setLevel(9);

out.write(buf, 0, len);

}

// Complete the entry

out.closeEntry();

in.close();

}

out.close();

}else{

ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipfile));

out.putNextEntry(new ZipEntry(" "));

out.closeEntry();

out.close();

}

// Complete the ZIP file

} catch (IOException e) {

e.printStackTrace();

}

}

}

本回答由提问者推荐

2Q==

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值