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 ...
随机推荐
- mybatis-generator : 自动生成代码
[参考文章]:mybatis generator自动生成代码时 只生成了insert 而没有其他 [参考文章]:Mybatis Generator最完整配置详解 1. pom <plugin&g ...
- 将你的前端应用打包成docker镜像并部署到服务器?仅需一个脚本搞定
1.前言 前段时间,自己搞了个阿里云的服务器.想自己在上面折腾,但是不想因为自己瞎折腾而污染了现有的环境.毕竟,现在的阿里云已经没有免费的快照服务了.要想还原的话,最简单的办法就是重新装系统.而一旦重 ...
- python异常处理的哲学
所谓异常指的是程序的执行出现了非预期行为,就好比现实中的做一件事过程中总会出现一些意外的事.异常的处理是跨越编程语言的,和具体的编程细节相比,程序执行异常的处理更像是哲学.限于认知能力和经验所限,不可 ...
- django-restframework 处理跨域问题
django-restframework 处理跨域问题 一 前言 想要处理跨域问题,首先需要了解同源策略. 二 同源策略 同源策略(Same origin policy)是一种约定,它是浏览器最核心也 ...
- git clone 指定分支
使用Git下载指定分支命令为:git clone -b 分支名仓库地址 克隆asp.net core 2.1.6版本 git clone -b 2.1.6 https://github.com/asp ...
- Office组件无法正常使用的解决方法
问题与现象 开发时调用Office组件,代码编译是通过的,但在运行时当ApplicationClass对象初始化后程序出现异常. 异常信息如下: 无法将类型为“Microsof ...
- oracle学习笔记(六) JDBC使用
JDBC使用 1. 导包 直接使用IDEA导入依赖包即可 新建一个lib,把jar包放在这里 2. 加载驱动 Class.forName("oracle.jdbc.driver.Oracle ...
- 三位数流水码的生成(000·····009··00A····00Z····ZZZ)
//规格代码的生成 private String getCode (String code) { char[] chars=code.toCharArray(); if (chars[2]==57){ ...
- Ueditor图片上传功能的配置
之前的项目中碰到过图片上传功能的配置问题,但是没有记录下来,今天有个朋友突然又问到了我这个问题,当时没想起来之前怎么解决的,后来看了Ueditor的官方文档才回想起来. 官网文档巨多,一般大家遇到问题 ...
- APP网站安全漏洞检测服务的详细介绍
01)概述: 关于APP漏洞检测,分为两个层面的安全检测,包括手机应用层,以及APP代码层,与网站的漏洞检测基本上差不多,目前越来越多的手机应用都存在着漏洞,关于如何对APP进行漏洞检测,我们详细的介 ...