返回顶部
首页 > 资讯 > 后端开发 > JAVA >使用hutool工具(ZipUtil)对多文件打包压缩并通过浏览器下载
  • 674
分享到

使用hutool工具(ZipUtil)对多文件打包压缩并通过浏览器下载

java开发语言 2023-09-26 11:09:52 674人浏览 八月长安
摘要

使用hutool工具(ZipUtil)对多文件打包压缩并通过浏览器下载 使用hutool工具对多文件进行打包压缩并下载 需求 工作中遇到需要将详情页面数据导出为Word,同时详情中有图片和附件,由于附

使用hutool工具(ZipUtil)对多文件打包压缩并通过浏览器下载

使用hutool工具对多文件进行打包压缩并下载
需求

工作中遇到需要将详情页面数据导出为Word,同时详情中有图片和附件,由于附件没法写入到word中(可能是自己没有找到对应的解决办法) , 故将需要导出的word文件,和附件一同打包成zip,进行下载
实现

共两个步骤

1 . 使用hutool对多文件打包
2 .下载

下载方法 FileUtils中的方法

public static void downloadZip(File file, httpservletResponse response) {    OutputStream toClient = null;    try {        // 以流的形式下载文件。        BufferedInputStream fis = new BufferedInputStream(new FileInputStream(file.getPath()));        byte[] buffer = new byte[fis.available()];        fis.read(buffer);        fis.close();        // 清空response        response.reset();        toClient = new BufferedOutputStream(response.getOutputStream());        response.setCharacterEncoding("UTF-8");        response.setContentType("application/octet-stream");        response.setHeader("Content-Disposition", "attachment;filename=" + file.getName());        toClient.write(buffer);        toClient.flush();    } catch (Exception e) {        log.error("下载zip压缩包过程发生异常:", e);    } finally {        if (toClient != null) {            try {                toClient.close();            } catch (IOException e) {                log.error("zip包下载关流失败:", e);            }        }        //删除改临时zip包(此zip包任何时候都不需要保留,因为源文件随时可以再次进行压缩生成zip包)        file.delete();    }}
public void exportWord(@RequestHeader Long projectId,HttpServletResponse response, Long recordId) {   try {      // 压缩到的位置       File zipFile = new File("D:\\压缩.zip");              // 压缩文件中包含的文件列表,此处为测试代码,实际为自己需要的文件列表       List<File> fileList = CollUtil.newArrayList();       fileList.add(new File("D:\\文件1.doc"));       fileList.add(new File("D:\\文件2.xlsx"));              // 压缩多个文件,压缩后会将压缩临时文件删除       ZipUtil.zip(zipFile, false, fileList.toArray(new File[fileList.size()]));              // 下载       FileUtils.downloadZip(zipFile,response);   } catch (Exception e) {       logger.error("文件压缩异常",e);   } finally {          }}

参考:https://blog.csdn.net/weixin_44684303/article/details/128723675

来源地址:https://blog.csdn.net/qq_34228115/article/details/129295900

--结束END--

本文标题: 使用hutool工具(ZipUtil)对多文件打包压缩并通过浏览器下载

本文链接: https://lsjlt.com/news/418453.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作