欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

前端GET/POST請(qǐng)求下載文件多種方式代碼示例

 更新時(shí)間:2024年06月26日 09:57:42   作者:miao_0923  
文件都是通過(guò)接口獲取的,前端通過(guò)調(diào)用接口將接口返回的文件下載,下面這篇文章主要給大家介紹了關(guān)于前端GET/POST請(qǐng)求下載文件的多種方式,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下

下載post

export const download = (data, projectId) => {
  return request({
    url: BaseUrl + '/xxx/xxx/xxx',
    headers: {
      "Project-Id": projectId,
      httpWhite: true,
    },
    responseType: "blob",//文件流
    method: 'post',
    data
  })
}
<el-button size="small" type="primary" class="downLoadTemplate" @click="downloadFile(row)">
    <i class="iconfont yun-xiazai"></i>
    <span class="first">下載數(shù)據(jù)模板</span>
</el-button>
//點(diǎn)擊下載
const downloadFile(row){
  const params = {
    需要傳遞的參數(shù):'xxxx',
    id:row.id,  //示例,
  }  
  download(params, this.projectIds).then((res) => {
    if (res.status === 200) {
      this.downloadDataTemplate(res);
    }
  });
}

//下載數(shù)據(jù)模板
downloadDataTemplate(res) {
  if (!res.data) {
    return;
  }
  const fileName = decodeURIComponent(
    res.headers["content-disposition"].split("filename=")[1]
  );
  const blob = new Blob([res.data], {
    type: "application/vnd.openxmlformats-  officedocument.spreadsheetml.sheet;charset=utf-8",
  });
  const downloadElement = document.createElement("a");
  const href = window.URL.createObjectURL(blob); // 創(chuàng)建下載的鏈接
  downloadElement.href = href;
  // 文件名中有中文 則對(duì)文件名進(jìn)行轉(zhuǎn)碼
  downloadElement.download = fileName; // 下載后文件名
  document.body.appendChild(downloadElement);
  downloadElement.click(); // 點(diǎn)擊下載
  document.body.removeChild(downloadElement); // 下載完成移除元素
  window.URL.revokeObjectURL(href); // 釋放blob對(duì)象
},

Get下載方法

通用get下載方法 99%可以使用

const downError = `BaseUrl+/xxx/xxx/xxxx?${this.tokenHeader}=${getToken()}&projectId=${this.projectId}&spaceId=${this.spaceId}`;

window.open(downError, "_self");//調(diào)用window方法

特殊get下載方法 1%才能用到 一般用不到 (僅用于個(gè)人記錄)

這種使用于需要在hearder里面添加projecrt-Id等參數(shù) 一般的都不需要 主要看后端接口能不能使用

使用下面這種方法 最主要get下載的請(qǐng)求 是responseType:blob 文件流

export const exportPersonnel = (params) => request({
  url: BaseUrl + '/exportxxx/xxxx',
  headers: {
    "Project-Id": params.projectId,
  },
  method: 'get',
  responseType: 'blob',		//文件流方法
  params,
})
// 導(dǎo)出
exportcustomer() {
  let downStr = { ...this.params };
  exportPersonnel(downStr).then((r) => {
    if (r.status === 200) {
      //獲取下載文件名 
      const fileName = decodeURIComponent(
        r.headers["content-disposition"].split("filename=")[1]
      );
      // 創(chuàng)建 a 元素
      const link = document.createElement('a');
      const href = window.URL.createObjectURL(r.data)//創(chuàng)建下載鏈接
      link.href = href;// 設(shè)置下載鏈接的 URL
      link.style.display = "none";

      link.download = fileName; // 下載后文件名
      document.body.appendChild(link);
      link.click(); // 點(diǎn)擊下載
      document.body.removeChild(link); // 下載完成移除元素
      window.URL.revokeObjectURL(href); // 釋放blob對(duì)象
    }
  });
},

總結(jié) 

到此這篇關(guān)于前端GET/POST請(qǐng)求下載文件多種方式的文章就介紹到這了,更多相關(guān)前端GET/POST請(qǐng)求下載文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺談html轉(zhuǎn)義及防止javascript注入攻擊的方法

    淺談html轉(zhuǎn)義及防止javascript注入攻擊的方法

    下面小編就為大家?guī)?lái)一篇淺談html轉(zhuǎn)義及防止javascript注入攻擊的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-12-12
  • 學(xué)習(xí)使用bootstrap的modal和carousel

    學(xué)習(xí)使用bootstrap的modal和carousel

    這篇文章主要教大家學(xué)會(huì)用bootstrap的modal和carousel,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • 淺析JS中回調(diào)函數(shù)及用法

    淺析JS中回調(diào)函數(shù)及用法

    這篇文章主要介紹了JS中回調(diào)函數(shù)及用法,通過(guò)實(shí)例代碼給大家詳細(xì)介紹了什么是回調(diào)函數(shù),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2018-07-07
  • JavaScript實(shí)現(xiàn)簡(jiǎn)單拖拽效果

    JavaScript實(shí)現(xiàn)簡(jiǎn)單拖拽效果

    這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)簡(jiǎn)單拖拽效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • javascript常見(jiàn)操作匯總

    javascript常見(jiàn)操作匯總

    這篇文章主要介紹了javascript常見(jiàn)操作,有針對(duì)字符串、時(shí)間、表單等的操作,以及驗(yàn)證、收藏、隨機(jī)數(shù)等其他常見(jiàn)技巧,需要的朋友可以參考下
    2014-09-09
  • JS判斷鍵盤是否按的回車鍵并觸發(fā)指定按鈕點(diǎn)擊操作的方法

    JS判斷鍵盤是否按的回車鍵并觸發(fā)指定按鈕點(diǎn)擊操作的方法

    下面小編就為大家?guī)?lái)一篇JS判斷鍵盤是否按的回車鍵并觸發(fā)指定按鈕點(diǎn)擊操作的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-02-02
  • angular bootstrap timepicker TypeError提示怎么辦

    angular bootstrap timepicker TypeError提示怎么辦

    這篇文章主要介紹了angular bootstrap timepicker TypeError提示的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • 多附件上傳組件演示

    多附件上傳組件演示

    多附件上傳組件演示...
    2006-09-09
  • JS和Canvas實(shí)現(xiàn)圖片的預(yù)覽壓縮和上傳功能

    JS和Canvas實(shí)現(xiàn)圖片的預(yù)覽壓縮和上傳功能

    這篇文章主要介紹了JS和Canvas實(shí)現(xiàn)圖片的預(yù)覽壓縮和上傳功能,實(shí)現(xiàn)此功能大概有兩步,第一步用戶選擇需要上傳的圖片,第二步獲取圖片資源壓縮預(yù)覽上傳,具體實(shí)現(xiàn)代碼大家參考下本文
    2018-03-03
  • 使用透明效果來(lái)自定義文件上傳按鈕控件樣式

    使用透明效果來(lái)自定義文件上傳按鈕控件樣式

    處于安全上的考慮,input[type="file"] 的文件選擇按鈕樣式并不能隨意修改(不過(guò)可以修改input 的透明度),可能會(huì)跟設(shè)計(jì)師的設(shè)計(jì)格格不入,這時(shí)可以使用透明效果來(lái)自定義上傳按鈕
    2012-12-12

最新評(píng)論