Java导出压缩包工具类
/**
* @Title: exportZip
* @Description:TODO(导出建压缩文件)
* @param delAdviceinfo 为项目实体类
* @date 2018年4月4日 下午2:36:41
* @param response
*
*/
public void exportZip(DelAdviceinfo delAdviceinfo, HttpServletResponse response) {
OutputStream os = null;
ZipOutputStream zos = null;
try {
os = response.getOutputStream();
zos = new ZipOutputStream(os);
String realpath = request.getSession().getServletContext().getRealPath("/");
String filename = "建议正文内容.zip";
response.setContentType("application/octet-stream");
response.setHeader("Connection", "close"); // 表示不能用浏览器直接打开
response.setHeader("Accept-Ranges", "bytes"); // 告诉客户端允许断点续传多线程连接下载
response.setHeader("Content-disposition", "attachment; filename="
+ new String(URLEncoder.encode(filename, "utf-8").getBytes("UTF-8"), "ISO-8859-1"));
// 查询数据
String userid = getCurrentUserId();
List<String> rolecodes = sysUserMapper.selectRoleCodesByUserID(userid);
// 代表
if (rolecodes.contains("db")) {
delAdviceinfo.setCurruserid(userid);
}
// 代表团管理员
else if (rolecodes.contains("dbtgly")) {
delAdviceinfo.setArea(getCurrentUser().getAreacode());
}
// 承办单位
else if (rolecodes.contains("cbdw")) {
delAdviceinfo.setUnitid(getCurrentUser().getDelunitid());
}
List<DelAdviceinfo> list = delAdviceinfoMapper.selectBootPage(null, delAdviceinfo);
for (DelAdviceinfo item : list) {
// 查询附议代表
if (StringUtils.isNotBlank(item.getResolutionerids())) {
String[] resoids = item.getResolutionerids().split(",");
List<DelDelegationinfoofSc> resos = delDelegationinfoofScMapper.selectResoList(resoids);
item.setResos(resos);
}
// 保存临时文件
String filefullname = item.getTitle() + "正文.doc";
if (StringUtils.isNotEmpty(item.getAdviceno())) {
filefullname = item.getAdviceno() + "_" + filefullname;
}
filefullname = UUID.randomUUID().toString() + "_" + filefullname;
String filepath = realpath + "/upload/tmp/" + filefullname;
File file = new File(filepath);
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
FileOutputStream fos = new FileOutputStream(file);
writeAdviceContent(item, fos);
// 加入zip流
String entryname = file.getName();
entryname = entryname.substring(entryname.indexOf("_") + 1);
ZipEntry zipEntry = new ZipEntry(entryname);
zos.putNextEntry(zipEntry);
InputStream is = new FileInputStream(file);
int i;
while ((i = is.read()) != -1) {
zos.write(i);
}
is.close();
file.delete();
}
zos.flush();
} catch (IOException e) {
e.printStackTrace();
}
finally {
try {
zos.close();
os.close();
} catch (IOException e2) {
e2.printStackTrace();
}
}
}
Java导出压缩包工具类的更多相关文章
- Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类
Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类 ============================== ©Copyright 蕃薯耀 20 ...
- java导出excel工具类
java导出excel须要使用HSSFWorkbook这个类,须要导入poi-3.6-20091214.jar 工具类调用例如以下: package com.qlwb.business.util; i ...
- WordUtil java导出word工具类
import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.BufferedWriter ...
- 导入导出Excel工具类ExcelUtil
前言 前段时间做的分布式集成平台项目中,许多模块都用到了导入导出Excel的功能,于是决定封装一个ExcelUtil类,专门用来处理Excel的导入和导出 本项目的持久化层用的是JPA(底层用hibe ...
- javaEE开发之导出excel工具类
web开发中,一个系统的普通需求也包含导出excel,一般採用POI做统计报表导出excel. 导出excel工具类: import java.io.FileOutputStream; import ...
- java下载文件工具类
java下载文件工具类 package com.skjd.util; import java.io.BufferedInputStream; import java.io.BufferedOutput ...
- HttpTool.java(在java tool util工具类中已存在) 暂保留
HttpTool.java 该类为java源生态的http 请求工具,不依赖第三方jar包 ,即插即用. package kingtool; import java.io.BufferedReader ...
- java文件处理工具类
import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.BufferedRead ...
- java格式处理工具类
import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOExceptio ...
随机推荐
- 从PRISM开始学WPF(五)MVVM(一)ViewModel-更新至Prism7.1
0x5 MVVM [7.1updated]截止到目前,我们看到7.1的更新主要在三个地方 PrismApplication ,并且不再使用Bootstrapper 更新了unity,现在使用prism ...
- Lumen框架-错误&日志
介绍 当你开始一个新的Lumen项目的时候,错误和异常功能,已经在框架中注入了.此外,Lumen还集成了Monolog日志函数,支持和提供多种强大的日志处理功能. 配置 错误详情 大量的错误信息在你的 ...
- 第66章 视频 - Identity Server 4 中文文档(v1.0.0)
第66章 视频 66.1 2019 January [NDC] - 使用ASP.NET Core 2.2和3.0保护Web应用程序和API 1月[NDC] - 为基于OpenID Connect / ...
- tomcat 控制台中文乱码问题
1.找到${CATALINA_HOME}/conf/logging.properties2.添加语句:java.util.logging.ConsoleHandler.encoding = GBK 3 ...
- CentOS下MySQL的安装
MySQL数据库是一款比较常用的数据库,大家在练习安装时,可能会遇到各种各样的问题,请大家参考在CentOS系统下MySQL数据库的安装方式.如有任何问题,欢迎留言,本人随时解答. MySQL安装步骤 ...
- 【升鲜宝】生鲜配送管理系统_升鲜宝供应链系统V2.0 客户管理模块功能与设计,欢迎大家批评指点。
[升鲜宝] 客户管理模块功能设计与介绍 客户模块分为以下子功能 客户列表 价格组 价格组商品价格 客户退货 客户星级 客户类型 客户存储位 客户来源 物流公司 打印模板 子模块介绍 客 ...
- C# 利用位运算传递多个参数方法
前言 在工作中用sendMessage的方法向另外一个进程中传递窗体的位置,长度,宽度四个值,但是sendMessage的方法签名中只有两个参数.于是在网上找到了一些代码,找到了这个利用位运算来合并参 ...
- 荣耀7.0系统手机最简单激活Xposed框架的步骤
对于喜欢玩手机的小伙伴来说,很多时候会使用到Xposed框架及各类功能彪悍的模块,对于5.0以下的系统版本,只要手机能获得Root权限,安装和激活Xposed框架是比较简便的,但随着系统版本的不断更新 ...
- datatable动态列处理,重绘表格(敲黑板,划重点!!!我肝了一天半才彻底弄懂这个东西,TAT)
datatable动态列处理,重绘表格 前言:至于动态列的绘画,我前面博客已经写过了,就是动态列的配置问题,不懂的去我博客看下,今天要写的呢,就是你已经写了一个动态列在datatable,现在你想重新 ...
- 搭建Linux虚拟服务器
1.搭建Linux虚拟机环境安装VMware Workstation 14下载地址:https://www.cr173.com/soft/68480.html密钥:FF31K-AHZD1-H8ETZ- ...