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 ...
随机推荐
- 我们为什么要搞长沙.NET技术社区(4)
我们为什么要搞长沙.NET技术社区(4) 邹溪源,2019年3月7日 Ps:文中的.NET 包括且不限定于传统.NET Framework技术和.NET Core技术. 1. 楔子 昨天(201 ...
- JavaScript 执行机制
一.宏任务与微任务 macro-task(宏任务):包括整体代码script,setTimeout,setInterval micro-task(微任务):Promise,process.nextTi ...
- 【机器学习篇】--SVD从初始到应用
SVD一般应用场景--推荐系统,图像压缩. 1.直观感受. SVD其实就是将矩阵分界,直观感受如图.就是将A矩阵分界成U,S,V三个矩阵相乘.一般推荐系统中用的多.S是对角阵,里面的特征值是从大到小排 ...
- asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程
最近在学习张善友老师的NanoFabric 框架的时了解到Exceptionless : https://exceptionless.com/ !因此学习了一下这个开源框架!下面对Exceptionl ...
- springboot~mockMvc和asciidoctor生成基于TDD的API文档
API文档是前端与后端快速开发,减少沟通成本的必要条件,有一份完善的文档是很必要的,由通过测试来生成文档的好处就是:测试数据有了,测试返回结果有了,而且可以对这些字段进行说明,很清晰,在springb ...
- Fescar(Seata)-Springcloud流程分析-1阶段
Fescar是阿里18年开源的分布式事务的框架.Fescar的开源对分布式事务框架领域影响很大.作为开源大户,Fescar来自阿里的GTS,经历了好几次双十一的考验,一经开源便颇受关注.今天就来看了F ...
- 如何利用HTTP缓存来加快你的网站应用
缓存在web环境各个环节都有实现,有CPU缓存.文件缓存.程序的Opcode缓存(APC,eAccelerator).内存缓存(Memcached,Redis).代理服务器(Nginx,Squid). ...
- 图解Go语言内存分配
目录 基础概念 内存管理单元 内存管理组件 mcache mcentral mheap 内存分配流程 总结 参考资料 Go语言内置运行时(就是runtime),抛弃了传统的内存分配方式,改为自主管理. ...
- vue中用mock制造模拟接口(本文主要解决坑),一定要看完哦
最近新入职一家公司,后端造接口速度很慢,想来想去还是搞一套模拟接口,来满足开发需求,有人会问,我造一个死数据不就可以了吗?或者说,后端数据结构都没出来,字段我怎么定? 问这个问题的人不奇怪,我之前也有 ...
- 简简单单的Vue4(vue-cie@3.x,vue’Debug[调试],vue‘sHttp)
既然选择了远方,便只顾风雨兼程! __HANS许 系列:零基础搭建前后端分离项目 系列:零基础搭建前后端分离项目 vue-cli@3.x 创建项目 Vue的Debug(调试) Vue的Http请求 提 ...