JAVA 导出 zip压缩文件,代码如下

public void downloading(String orderId) {List<String> urlList=new ArrayList<>();urlList.add("test/20210729/91ff23f577a422711b2cac7f6649c747.png");urlList.add("test/20210729/3edf79f04afb9a4202c76523200d6cb7.png");urlList.add("test/20210729/b7cd48017d698ea52a080ffc7323eaa3.jpg");// yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。String endpoint = OssUtils.End_Point;// 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。String accessKeyId = OssUtils.Key_Id;String accessKeySecret = OssUtils.Key_Secret;// 填写Bucket名称。String bucketName = OssUtils.BUCKET;//  D:\git\daotie\daotie// 填写不包含Bucket名称在内的Object完整路径,例如testfolder/exampleobject.txt。for (String s : urlList) {String objectName = s;//在填写文件路径时,一定要写上具体的文件名称(xx.txt),否则会出现拒绝访问。String[] split = objectName.split("/");File file = new File(filePath + "/" + split[split.length - 1]);file.setWritable(true, false);if (!file.exists()) {//先得到文件的上级目录,并创建上级目录,在创建文件file.getParentFile().mkdir();try {//创建文件file.createNewFile();} catch (IOException e) {e.printStackTrace();}}// 创建OSSClient实例。OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);// 下载Object到本地文件,并保存到指定的本地路径中。如果指定的本地文件存在会覆盖,不存在则新建。// 如果未指定本地路径,则下载后的文件默认保存到示例程序所属项目对应本地路径中。ossClient.getObject(new GetObjectRequest(bucketName, objectName), file);// 关闭OSSClient。ossClient.shutdown();}String downloadName = 11111 + ".zip";//将文件进行打包下载try {OutputStream out = response.getOutputStream();byte[] data = createZip(filePath);//服务器存储地址response.reset();response.setHeader("Content-Disposition", "attachment;fileName=" + downloadName);response.addHeader("Content-Length", "" + data.length);response.setContentType("application/octet-stream;charset=UTF-8");IOUtils.write(data, out);out.flush();out.close();} catch (Exception e) {e.printStackTrace();}}delZSPic(filePath);}private void delZSPic(String filePath) {if(filePath != null) {File file = new File(filePath);if(file.exists()) {File[] filePaths = file.listFiles();for(File f : filePaths) {if(f.isFile()) {f.delete();}
//                    if(f.isDirectory()){//                        String fpath = f.getPath();
//                        delZSPic(fpath);
//                        f.delete();
//                    }}}}}public byte[] createZip(String srcSource) throws Exception {ByteArrayOutputStream outputStream = new ByteArrayOutputStream();ZipOutputStream zip = new ZipOutputStream(outputStream);//将目标文件打包成zip导出File file = new File(srcSource);zip(zip, file, "");IOUtils.closeQuietly(zip);return outputStream.toByteArray();}public void zip(ZipOutputStream zip, File file, String dir) throws Exception {//如果当前的是文件夹,则进行进一步处理if (file.isDirectory()) {//得到文件列表信息File[] files = file.listFiles();//将文件夹添加到下一级打包目录
//            zip.putNextEntry(new ZipEntry(dir + "/"));dir = dir.length() == 0 ? "" : dir + "/";//循环将文件夹中的文件打包for (int i = 0; i < files.length; i++) {zip(zip, files[i], dir + files[i].getName());         //递归处理}} else {   //当前的是文件,打包处理//文件输入流BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));ZipEntry entry = new ZipEntry(dir);zip.putNextEntry(entry);zip.write(FileUtils.readFileToByteArray(file));IOUtils.closeQuietly(bis);zip.flush();zip.closeEntry();}}

JAVA zip 压缩包 导出相关推荐

  1. java zip压缩包并加密

    进入jar包 <dependencies><dependency><groupId>net.lingala.zip4j</groupId><art ...

  2. java 导出表格打包zip文件下载_asyExcel导出excel并打包成zip压缩包下载

    假期期间自己在家撸码,刚好用到了导出,导出来之后是多个文件,所以需要打成压缩包并下载来给客户.查阅了一些资料,把这段代码贴在这,相当于有个记录吧. package com.business.testE ...

  3. Java中使用mysqldump实现mysql数据库备份并将sql文件打成zip压缩包

    场景 在Java代码中调用mysqldump命令实现对指定的mysql数据库和指定的表导出为sql文件. 并将sql文件进行压缩成zip存储备份. mysqldump 简介 mysqldump 是 M ...

  4. easyExcel导出excel文件并打包成zip压缩包下载

    文件导出 专栏收录该内容 2 篇文章0 订阅 订阅专栏 package com.business.testExcelPort; import java.io.BufferedInputStream; ...

  5. java实现word批量多模版(浏览器zip压缩导出)

    用java实现word导出,如果不实现批量导出,可以只使用 word 替换工具,如果要实现批量导出,这里的解决办法是将所有的导出文件放入服务器临时文件,压缩后导出 1.依赖包 <dependen ...

  6. java zip追加_基于Java向zip压缩包追加文件

    这篇文章主要介绍了基于Java向zip压缩包追加文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 有个需求,从某个接口下载的一个zip压缩包,往里 ...

  7. Java实现Zip压缩包解压

    对zip压缩包的解压是比较常见的应用场景,java代码的实现也很简单.废话不多说,直接上代码吧 一.代码  /** * zip解压 * @param srcFile        zip源文件 * @ ...

  8. Java递归解压zip压缩包

    场景:zip压缩包里面嵌套多层文件夹或者zip压缩包: 使用递归的方式进行解压,解压后得到的目录结构和压缩包目录结构完全一致,非常好用! package com.zhh.api.util;import ...

  9. 【java】 文件批量下载并压缩为zip压缩包

    [java] 文件批量下载并压缩为zip压缩包 java常用的压缩技术 java中常见实现压缩与解压 业务场景 代码实现 注意点 java常用的压缩技术 常见的压缩格式有很多种,例如:zip.rar. ...

最新文章

  1. Java基础语法(一)注释,关键字,常量,变量,数据类型,标识符,数据类型转换...
  2. 页面jlabel背景色设置_(六)使用elementUI搭建管理员页面布局
  3. Wix安装程序中判断是否安装的.net framwork 4.5
  4. 基于7个案例,分享我对“提示信息设计”的思考
  5. 【learning】快速沃尔什变换FWT
  6. 记录今天登录oracle时遇到的一个小问题--不能登录
  7. java class private_Java class 中public、protected 、friendly、private的区别
  8. 2017.10.17 CF#441 F题 思考记录
  9. 形容时间过得快的句子,一些表示时间过得快的句子
  10. high performance web sites 阅读小记
  11. [codeVS1204] 寻找子串位置
  12. 毕业设计开发板-基于C20S单片机恒温开发板
  13. 拓嘉启远:怎样做拼多多推广见效是比较快的
  14. 小萝莉说Crash(一):Unrecognized selector sent to instance xxxx
  15. SpringBoot使用SpringDataJPA通过方法名查询
  16. matlab中怎么画函数曲线,用matlab 怎么画函数曲线图
  17. 2021virtualbox中Ubuntu16.04:开发环境配置,更换源
  18. 【Node.js】实现微信小程序在线支付功能
  19. 一文详解光电容积图 (PPG) 和心电图 (ECG) 基本工作原理
  20. php面试题目100及最佳答案,2020最新PHP面试100题(一)

热门文章

  1. 不切换 Git 分支,却能同时在多个分支上工作,我是怎么做到的?
  2. CodeForces 464E The Classic Problem | 呆克斯歘 主席树维护高精度
  3. WebView 正确设置cookie 的方法
  4. insmod: error inserting 'xxx.ko': -1 Invalid module format
  5. 【翻译】DataHub:流行的元数据架构讲解
  6. 面向对象OO ALV添加按钮实现过程
  7. anaconda 代码提示,Anaconda安装OpenCV没有自动代码补全
  8. PTA——最佳情侣身高差
  9. 斯坦福神经调控疗法(Stanford Neuromodulation Therapy, SNT)
  10. 怎么删除计算机的打印机设备,win7系统的打印机删除不掉怎么办?完美解决方法看这里!...