最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot下載docx文檔方式

 更新時間:2025年06月23日 09:09:36   作者:@窮且益堅,不墜青云之志  
這篇文章主要介紹了SpringBoot下載docx文檔方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

SpringBoot下載docx文檔

功能需求很簡單:我想實現(xiàn)一個在線下載簡歷docx文檔的功能

實現(xiàn)效果如下:點擊下載后,就出現(xiàn)下載的文檔

目前該方式有局限性只能下載微軟的word文檔,而wps的會下載失敗

一、具體代碼

使用的庫為 org.apache.poi 專門處理Microsoft 的文檔

<dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-scratchpad</artifactId>
            <version>5.2.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>5.2.2</version>
        </dependency>

實現(xiàn)思路:

(1)讀取簡歷文件進入輸入流 (輸入流讀取文件)

(2)利用 XWPFDocument 裝載 讀取的數(shù)據(jù)流,將其寫入 響應里面

 public void downloadDoc(HttpServletResponse response) throws UnsupportedEncodingException {
        String baseUrl = "D:\\testDownload\\";
        String temp = "5939.docx";
        File file = new File(baseUrl + temp);
        //獲取文件名
        String filename  = file.getName();
        //獲取后綴名
        int i = filename.lastIndexOf(".");
        String extension = filename.substring(i+1);

        //設置響應的信息
        response.reset();
        response.setCharacterEncoding("UTF-8");
        response.setHeader("Content-Disposition", "attachment;filename=" +  URLEncoder.encode(filename, "utf8"));
        response.setHeader("Pragma", "no-cache");
        response.setHeader("Cache-Control", "no-cache");
        //設置瀏覽器接受類型為流
        response.setContentType("application/octet-stream;charset=UTF-8");
        try {
            InputStream in = new FileInputStream(file);
            // 將文件寫入輸入流
            OutputStream out = response.getOutputStream();
            if("docx".equals(extension) || "doc".equals(extension)) {
                //docx文件就以XWPFDocument創(chuàng)建
                XWPFDocument docx = new XWPFDocument(in);
                docx.write(out);
                docx.close();
            } else {
                //其他類型的文件,按照普通文件傳輸 如(zip、rar等壓縮包)
                int len;
                //一次傳輸1M大小字節(jié)
                byte[] bytes = new byte[1024];
                while ((len = in.read(bytes)) != -1) {
                    out.write(bytes  , 0 , len);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

二、前端如何下載

我使用最簡單的方式:window.open(ulr)

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • springboot項目中使用docker進行遠程部署的實現(xiàn)

    springboot項目中使用docker進行遠程部署的實現(xiàn)

    本文主要介紹了在Spring Boot項目中使用Docker進行遠程部署,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-01-01
  • IDEA導出暫存區(qū)(Shelf)的代碼的完整過程

    IDEA導出暫存區(qū)(Shelf)的代碼的完整過程

    IDEA 有一個很好用的功能,Shelve Changes...,可以將代碼暫時存起來,方便切換分支,或暫存代碼,先處理其他事情,本文就給大家介紹如何將暫存區(qū)的代碼,導出來,導入到另一個項目或者另一臺電腦上,需要的朋友可以參考下
    2025-10-10
  • Hibernate基于ThreadLocal管理Session過程解析

    Hibernate基于ThreadLocal管理Session過程解析

    這篇文章主要介紹了Hibernate基于ThreadLocal管理Session過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-10-10
  • Java前后端分離的在線點餐系統(tǒng)實現(xiàn)詳解

    Java前后端分離的在線點餐系統(tǒng)實現(xiàn)詳解

    這是一個基于SpringBoot+Vue框架開發(fā)的在線點餐系統(tǒng)。首先,這是一個前后端分離的項目。具有一個在線點餐系統(tǒng)該有的所有功能,感興趣的朋友快來看看吧
    2022-01-01
  • Mybatis使用@param注解四種情況解析

    Mybatis使用@param注解四種情況解析

    這篇文章主要介紹了Mybatis使用@param注解四種情況解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08
  • kafka生產(chǎn)者和消費者的javaAPI的示例代碼

    kafka生產(chǎn)者和消費者的javaAPI的示例代碼

    這篇文章主要介紹了kafka生產(chǎn)者和消費者的javaAPI的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • JAVA三種攔截方式詳解(原生過濾器Filter、springMVC攔截器、aop切面)

    JAVA三種攔截方式詳解(原生過濾器Filter、springMVC攔截器、aop切面)

    在Java開發(fā)中方法攔截是一種常見的技術,可以用于在方法執(zhí)行前后添加額外的邏輯或修改方法的行為,這篇文章主要給大家介紹了關于JAVA三種攔截方式的相關資料,文中介紹的方式分別是原生過濾器Filter、springMVC攔截器、aop切面,需要的朋友可以參考下
    2024-05-05
  • idea2019.2安裝MybatisCodeHelper插件的超詳細教程

    idea2019.2安裝MybatisCodeHelper插件的超詳細教程

    這篇文章主要介紹了idea2019.2安裝MybatisCodeHelper插件的教程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • Java設計模式之建造者模式的示例詳解

    Java設計模式之建造者模式的示例詳解

    建造者模式,是一種對象構(gòu)建模式 它可以將復雜對象的建造過程抽象出來,使這個抽象過程的不同實現(xiàn)方法可以構(gòu)造出不同表現(xiàn)的對象。本文將通過示例講解建造者模式,需要的可以參考一下
    2022-02-02
  • 搭建maven私有倉庫的方法實現(xiàn)

    搭建maven私有倉庫的方法實現(xiàn)

    Maven是一個流行的Java項目管理工具,它可以幫助我們管理項目的構(gòu)建、報告和文檔,本文主要介紹了搭建maven私有倉庫的方法實現(xiàn),感興趣的可以了解一下
    2023-05-05

最新評論

封开县| 巫溪县| 巢湖市| 浦江县| 随州市| 阿拉尔市| 临沂市| 江达县| 且末县| 邵武市| 蓬安县| 焉耆| 郁南县| 麻城市| 迭部县| 时尚| 阜宁县| 常熟市| 徐水县| 苏尼特左旗| 德庆县| 房产| 资源县| 武夷山市| 高阳县| 宁乡县| 丹棱县| 集安市| 万宁市| 宣武区| 申扎县| 蓝山县| 屏东市| 宁南县| 抚宁县| 临朐县| 股票| 友谊县| 台湾省| 永川市| 宁陵县|