亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

React獲取Java后臺文件流并下載Excel文件流程解析

 更新時間:2020年06月17日 10:26:54   作者:不少于4個字節(jié)  
這篇文章主要介紹了React獲取Java后臺文件流下載Excel文件,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

記錄使用blob對象接收java后臺文件流并下載為xlsx格式的詳細過程,關鍵部分代碼如下。

首先在java后臺中設置response中的參數(shù):

public void exportExcel(HttpServletResponse response, String fileName, String sheetName,
            List<String> titleRow, List<List<String>> dataRows) {
  OutputStream out = null;
  try {
    // 設置瀏覽器解析文件的mime類型,如果js中已設置,這里可以不設置
    // response.setContentType("application/vnd.ms-excel;charset=gbk");
    // 設置此項,在IE瀏覽器中下載Excel文件時可彈窗展示文件下載
    response.setHeader("Content-Disposition", 
              "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
   	// 允許瀏覽器訪問header中的FileName
   	response.setHeader("Access-Control-Expose-Headers", "FileName");
    // 設置FileName,轉碼防止中文亂碼
    response.setHeader("FileName", URLEncoder.encode(fileName, "UTF-8"));
    
    out = response.getOutputStream();
    ExcelUtils.createExcelStream(out, sheetName, titleRow, dataRows);
    out.close();
  } catch (Exception e) {
    if (Objects.nonNull(out)) {
      try {
        out.close();
      } catch (IOException e1) {
        log.error("導出失敗", e);
      }
    }
    throw Exceptions.fail(ErrorMessage.errorMessage("500", "導出失敗"));
  }
}

此時在瀏覽器的調試面板中可以看到導出接口的response header參數(shù)如下:

access-control-allow-credentials: true
access-control-allow-methods: GET,POST,PUT,DELETE,OPTIONS
access-control-allow-origin: http://local.dasouche-inc.net:8081
access-control-expose-headers: FileName
connection: close
content-type: application/vnd.ms-excel;charset=gbk
date: Sun, 29 Mar 2020 10:59:54 GMT
filename: %E4%B8%BB%E6%92%AD%E5%88%97%E8%A1%A8166296222340726.xlsx

接下來我們在前端代碼中獲取文件流:

handleExport = () => {
  axios.post(`下載文件的接口請求路徑`, {}, {
    params: {
      參數(shù)名1: 參數(shù)值1,
      參數(shù)名2: 參數(shù)值2
    },
    // 設置responseType對象格式為blob
    responseType: "blob"
  }).then(res => {
	   // 創(chuàng)建下載的鏈接
    const url = window.URL.createObjectURL(new Blob([res.data],
		// 設置該文件的mime類型,這里對應的mime類型對應為.xlsx格式                          
      {type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'}));
    const link = document.createElement('a');
    link.href = url;
   	// 從header中獲取服務端命名的文件名
   	const fileName = decodeURI(res.headers['filename']);
    link.setAttribute('download', fileName);
    document.body.appendChild(link);
    link.click();
  });
};


至此就可以愉快地下載xlsx格式的文件啦~

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 從零開始最小實現(xiàn)react服務器渲染詳解

    從零開始最小實現(xiàn)react服務器渲染詳解

    這篇文章主要介紹了從零開始最小實現(xiàn)react服務器渲染詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • React實現(xiàn)文件分片上傳和下載的方法詳解

    React實現(xiàn)文件分片上傳和下載的方法詳解

    在當今的前端開發(fā)中,處理文件流操作已經(jīng)成為一個常見的需求,無論是上傳、下載、讀取、展示還是其他的文件處理操作,都需要高效且可靠地處理二進制數(shù)據(jù),本文將深入探討如何使用 React 實現(xiàn)文件分片上傳和下載,并介紹相關的基本概念和技術,需要的朋友可以參考下
    2023-08-08
  • 解決React報錯useNavigate()?may?be?used?only?in?context?of?Router

    解決React報錯useNavigate()?may?be?used?only?in?context?of

    這篇文章主要為大家介紹了解決React報錯useNavigate()?may?be?used?only?in?context?of?Router,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • react-router?v6實現(xiàn)權限管理+自動替換頁面標題的案例

    react-router?v6實現(xiàn)權限管理+自動替換頁面標題的案例

    這篇文章主要介紹了react-router?v6實現(xiàn)權限管理+自動替換頁面標題,這次項目是有三種權限,分別是用戶,商家以及管理員,這次寫的權限管理是高級權限能訪問低級權限的所有頁面,但是低級權限不能訪問高級權限的頁面,需要的朋友可以參考下
    2023-05-05
  • React生命周期與父子組件間通信知識點詳細講解

    React生命周期與父子組件間通信知識點詳細講解

    生命周期函數(shù)指在某一時刻組件會自動調用并執(zhí)行的函數(shù)。React每個類組件都包含生命周期方法,以便于在運行過程中特定的階段執(zhí)行這些方法
    2022-11-11
  • react-native只保留3x圖原理解析

    react-native只保留3x圖原理解析

    這篇文章主要為大家介紹了react-native只保留3x圖原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • 初識React及React開發(fā)依賴詳解

    初識React及React開發(fā)依賴詳解

    React由Facebook來更新和維護,它是大量優(yōu)秀程序員的思想結晶,React的流行不僅僅局限于普通開發(fā)工程師對它的認可,大量流行的其他框架借鑒React的思想,接下來通過本文介紹React基礎及React開發(fā)依賴介紹,需要的朋友可以參考下
    2022-10-10
  • 詳解基于webpack搭建react運行環(huán)境

    詳解基于webpack搭建react運行環(huán)境

    本篇文章主要介紹了詳解基于webpack搭建react運行環(huán)境,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • React根據(jù)當前頁面路由進行自動高亮示例代碼

    React根據(jù)當前頁面路由進行自動高亮示例代碼

    要根據(jù)當前頁面路由自動高亮頂部菜單項,可以使用 React Router 的 useLocation 鉤子來獲取當前路徑,并根據(jù)路徑動態(tài)設置菜單項的高亮效果,本文給大家介紹了一個完整的示例,展示如何根據(jù)當前頁面路由自動高亮頂部菜單項,需要的朋友可以參考下
    2024-07-07
  • 關于react-router-dom路由入門教程

    關于react-router-dom路由入門教程

    這篇文章主要介紹了關于react-router-dom路由入門教程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03

最新評論