Struts2下实现批量下载/打包ZIP下载文件
实现思路:
由于是基于Struts2实现的打包下载文件,我们先写一个TestAction类
public class TestAction extends BaseActionSupport {
private InputStream inputStreamAll;
private String inputPathforAll ;
private String fileNameforAll ;
public InputStream getInputStreamAll() throws Exception {
return inputStreamAll;
}
public void setInputStreamAll(InputStream inputStreamAll) throws Exception {
this.inputStreamAll = inputStreamAll;
}
/**
* 文件打包下载
* @return
*/
public String downloadFileAll() {
JdbcTemplate jdbcTemplateExtend = SpringContextUtil.getBean("jdbcTemplate");
CommonManager commonManager = SpringContextUtil.getBean("commonManager");
List<Map> queryForList = jdbcTemplate.queryForList("select * from FILE where id='" + id + "'");
String prefix = ServletActionContext.getServletContext().getRealPath("/uploadfile");
ArrayList<String> zipFile = new ArrayList<String>();
for (Map map : queryForList) {
String fileName = (String) map.get("FILE_NAME");
zipFile.add(prefix+File.separator+fileName );
}
String zipPath = ServletActionContext.getServletContext().getRealPath("/uploadZip/");
String formatDate =new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
String fileName = formatDate + ".zip";
String path = zipPath +File.separator +fileName;
ZipUtilToFile.compressFile(zipFile, path);
inputPathforAll = zipPath+ "\\uploadZip\\" + fileName;
try {
fileNameforAll = new String(fileName.getBytes(), "ISO8859-1");
this.setInputStreamAll(