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

这篇具有很好参考价值的文章主要介绍了使用hutool工具(ZipUtil)对多文件打包压缩并通过浏览器下载。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

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

共两个步骤

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

下载方法 FileUtils中的方法

/**
 * 下载ZIP压缩包(会对下载后的压缩包进行删除)
 *
 * @param file     zip压缩包文件
 * @param response 响应
 */
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://www.toymoban.com/news/detail-528739.html

到了这里,关于使用hutool工具(ZipUtil)对多文件打包压缩并通过浏览器下载的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux之文件打包和解压缩

    任务描述 有时,我们会在 Linux 系统中将多个文件打包成一个单独的文件,通过本关的学习,我们将学会如何在 Linux 系统中将多个文件/目录打包生成一个文件。 本关任务:使用 tar 命令完成文件和目录的打包操作。 相关知识 tar ( tape archive 的简写)工具可完成许多功能,其

    2024年02月09日
    浏览(31)
  • linuxOps基础_linux文件打包压缩与解压缩

    默认情况下,Linux的压缩概念一次只能压缩一个文件。针对多文件或文件夹无法进行直接压缩。所以需要提前对多个文件或文件夹进行打包,这样才可以进行压缩操作。 打包 打包只是把多个文件或文件夹打包放在一个文件中,但是并没有进行压缩,所以其大小还是原来所有文

    2024年02月07日
    浏览(27)
  • Linux中的打包和文件压缩

    文件打包和文件压缩是linux中常用的数据传递方式,可以保证数据的整体性;本文主要介绍工作中常用的几种打包和压缩方式 有时我们会将linux中的数据拷贝到windows上进行查看,常用的文件压缩格式有zip和rar zip文件压缩格式 压缩命令 说明 zip a.zip ./* 将当前目录下的文件压缩

    2024年02月07日
    浏览(27)
  • .net 项目静态文件自动压缩打包

    在 ASP.NET MVC 时代,我们常使用 BundleCollection 设置需要打包压缩的 js 和 css 文件,运行时框架会自动处理打包压缩过程并将最终结果传入响应。 ASP.NET Core 开始,不再提供内置的打包压缩组件,官方推荐 WebOptimizer 替代使用。 上述两者都是在运行时实时处理,应该至少在系统初

    2024年02月09日
    浏览(31)
  • 调用hutool包调用http接口处理文件流-文件的上传下载工具类

    hutool工具类get请求获取流: InputStream inputStream = HttpRequest.get(fileUrl).execute().bodyStream(); hutool工具类post请求上传文件流: String resp = HttpRequest.post(url).header(Header.CONTENT_TYPE.getValue(), ContentType.MULTIPART.getValue()).form(params).execute().body(); 完成代码

    2024年01月17日
    浏览(43)
  • Linux基础命令-tar打包压缩文件

    Linux基础命令-echo输出信息_Linux学习中的博客-CSDN博客 Linux三剑客-grep命令_Linux学习中的博客-CSDN博客 Linux文件管理命令(3)-mv改动文件_Linux学习中的博客-CSDN博客 文章目录 前言 一、tar命令介绍 二、命令语法及常用参数 三、 参考案例 总结 在工作上,有同事需要用到程序或一

    2024年02月13日
    浏览(28)
  • 如何自动(定时/间隔/重复)执行 同步文件、备份打包加密压缩文件

    参考下列两个教程结合使用即可: 快捷自由定时重启、注销、关机、文件夹同步打开程序等 如何从多个文件夹内转移全部文件(忽略文件夹的结构)(进行复制)(再打包) 就是先设定好 勾选对 \\\'来源路径’Zip打包,并且勾选 备份模式 备份模式下,就会先对要复制的文件

    2024年02月13日
    浏览(27)
  • Linux_6_文件查找与打包压缩

    在文件系统上查找符合条件的文件 文件查找: locate, find 非实时查找(数据库查找): locate 实时查找: find locate 查询系统上预建的文件索引数据库 /var/lib/mlocate/mlocate.db 索引的构建是在系统较为空闲时自动进行(周期性任务),执行updatedb可以更新数据库 索引构建过程需要遍历整个根

    2024年02月10日
    浏览(24)
  • Hutool工具类使用详解

    当今,Java开发者需要处理各种各样的任务,这包括但不限于:日期操作、加密算法、文件操作、Excel数据处理、网络请求等等。而在处理这些任务时,为了提高效率、降低开发难度和复杂度,我们需要借助一些工具类库。Hutool是一个Java工具类库,提供了许多常用的工具类和工

    2023年04月19日
    浏览(26)
  • 使用hutool工具生成树形结构

    假设要构建一个菜单,可以实现智慧库房,菜单的样子如下: 那这种结构如何保存在数据库中呢?一般是这样的: ​ 每条数据根据 parentId 相互关联并表示层级关系, parentId 在这里也叫外键 id parentId name 1 0 智慧库房 2 1 RFID 3 1 智慧大屏 4 1 智能密集架 5 1 环境管控 使用步骤:

    2024年02月14日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包