国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用hutool工具(ZipUtil)對多文件打包壓縮并通過瀏覽器下載

這篇具有很好參考價值的文章主要介紹了使用hutool工具(ZipUtil)對多文件打包壓縮并通過瀏覽器下載。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

使用hutool工具(ZipUtil)對多文件打包壓縮并通過瀏覽器下載

使用hutool工具對多文件進(jìn)行打包壓縮并下載
需求

工作中遇到需要將詳情頁面數(shù)據(jù)導(dǎo)出為word,同時詳情中有圖片和附件,由于附件沒法寫入到word中(可能是自己沒有找到對應(yīng)的解決辦法) , 故將需要導(dǎo)出的word文件,和附件一同打包成zip,進(jìn)行下載
實現(xiàn)

共兩個步驟

1 . 使用hutool對多文件打包
2 .下載

下載方法 FileUtils中的方法

/**
 * 下載ZIP壓縮包(會對下載后的壓縮包進(jìn)行刪除)
 *
 * @param file     zip壓縮包文件
 * @param response 響應(yīng)
 */
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壓縮包過程發(fā)生異常:", e);
    } finally {
        if (toClient != null) {
            try {
                toClient.close();
            } catch (IOException e) {
                log.error("zip包下載關(guān)流失敗:", e);
            }
        }
        //刪除改臨時zip包(此zip包任何時候都不需要保留,因為源文件隨時可以再次進(jìn)行壓縮生成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文章來源地址http://www.zghlxwxcb.cn/news/detail-528739.html

到了這里,關(guān)于使用hutool工具(ZipUtil)對多文件打包壓縮并通過瀏覽器下載的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Linux之文件打包和解壓縮

    Linux之文件打包和解壓縮

    任務(wù)描述 有時,我們會在 Linux 系統(tǒng)中將多個文件打包成一個單獨的文件,通過本關(guān)的學(xué)習(xí),我們將學(xué)會如何在 Linux 系統(tǒng)中將多個文件/目錄打包生成一個文件。 本關(guān)任務(wù):使用 tar 命令完成文件和目錄的打包操作。 相關(guān)知識 tar ( tape archive 的簡寫)工具可完成許多功能,其

    2024年02月09日
    瀏覽(18)
  • linuxOps基礎(chǔ)_linux文件打包壓縮與解壓縮

    linuxOps基礎(chǔ)_linux文件打包壓縮與解壓縮

    默認(rèn)情況下,Linux的壓縮概念一次只能壓縮一個文件。針對多文件或文件夾無法進(jìn)行直接壓縮。所以需要提前對多個文件或文件夾進(jìn)行打包,這樣才可以進(jìn)行壓縮操作。 打包 打包只是把多個文件或文件夾打包放在一個文件中,但是并沒有進(jìn)行壓縮,所以其大小還是原來所有文

    2024年02月07日
    瀏覽(24)
  • Linux中的打包和文件壓縮

    文件打包和文件壓縮是linux中常用的數(shù)據(jù)傳遞方式,可以保證數(shù)據(jù)的整體性;本文主要介紹工作中常用的幾種打包和壓縮方式 有時我們會將linux中的數(shù)據(jù)拷貝到windows上進(jìn)行查看,常用的文件壓縮格式有zip和rar zip文件壓縮格式 壓縮命令 說明 zip a.zip ./* 將當(dāng)前目錄下的文件壓縮

    2024年02月07日
    瀏覽(26)
  • .net 項目靜態(tài)文件自動壓縮打包

    .net 項目靜態(tài)文件自動壓縮打包

    在 ASP.NET MVC 時代,我們常使用 BundleCollection 設(shè)置需要打包壓縮的 js 和 css 文件,運行時框架會自動處理打包壓縮過程并將最終結(jié)果傳入響應(yīng)。 ASP.NET Core 開始,不再提供內(nèi)置的打包壓縮組件,官方推薦 WebOptimizer 替代使用。 上述兩者都是在運行時實時處理,應(yīng)該至少在系統(tǒng)初

    2024年02月09日
    瀏覽(28)
  • 調(diào)用hutool包調(diào)用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日
    瀏覽(27)
  • Linux基礎(chǔ)命令-tar打包壓縮文件

    Linux基礎(chǔ)命令-echo輸出信息_Linux學(xué)習(xí)中的博客-CSDN博客 Linux三劍客-grep命令_Linux學(xué)習(xí)中的博客-CSDN博客 Linux文件管理命令(3)-mv改動文件_Linux學(xué)習(xí)中的博客-CSDN博客 文章目錄 前言 一、tar命令介紹 二、命令語法及常用參數(shù) 三、 參考案例 總結(jié) 在工作上,有同事需要用到程序或一

    2024年02月13日
    瀏覽(28)
  • 如何自動(定時/間隔/重復(fù))執(zhí)行 同步文件、備份打包加密壓縮文件

    如何自動(定時/間隔/重復(fù))執(zhí)行 同步文件、備份打包加密壓縮文件

    參考下列兩個教程結(jié)合使用即可: 快捷自由定時重啟、注銷、關(guān)機、文件夾同步打開程序等 如何從多個文件夾內(nèi)轉(zhuǎn)移全部文件(忽略文件夾的結(jié)構(gòu))(進(jìn)行復(fù)制)(再打包) 就是先設(shè)定好 勾選對 \\\'來源路徑’Zip打包,并且勾選 備份模式 備份模式下,就會先對要復(fù)制的文件

    2024年02月13日
    瀏覽(24)
  • Linux_6_文件查找與打包壓縮

    在文件系統(tǒng)上查找符合條件的文件 文件查找: locate, find 非實時查找(數(shù)據(jù)庫查找): locate 實時查找: find locate 查詢系統(tǒng)上預(yù)建的文件索引數(shù)據(jù)庫 /var/lib/mlocate/mlocate.db 索引的構(gòu)建是在系統(tǒng)較為空閑時自動進(jìn)行(周期性任務(wù)),執(zhí)行updatedb可以更新數(shù)據(jù)庫 索引構(gòu)建過程需要遍歷整個根

    2024年02月10日
    瀏覽(26)
  • Hutool工具類使用詳解

    當(dāng)今,Java開發(fā)者需要處理各種各樣的任務(wù),這包括但不限于:日期操作、加密算法、文件操作、Excel數(shù)據(jù)處理、網(wǎng)絡(luò)請求等等。而在處理這些任務(wù)時,為了提高效率、降低開發(fā)難度和復(fù)雜度,我們需要借助一些工具類庫。Hutool是一個Java工具類庫,提供了許多常用的工具類和工

    2023年04月19日
    瀏覽(22)
  • 使用hutool工具生成樹形結(jié)構(gòu)

    使用hutool工具生成樹形結(jié)構(gòu)

    假設(shè)要構(gòu)建一個菜單,可以實現(xiàn)智慧庫房,菜單的樣子如下: 那這種結(jié)構(gòu)如何保存在數(shù)據(jù)庫中呢?一般是這樣的: ? 每條數(shù)據(jù)根據(jù) parentId 相互關(guān)聯(lián)并表示層級關(guān)系, parentId 在這里也叫外鍵 id parentId name 1 0 智慧庫房 2 1 RFID 3 1 智慧大屏 4 1 智能密集架 5 1 環(huán)境管控 使用步驟:

    2024年02月14日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包