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

前端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)文章

最新評(píng)論

林州市| 泉州市| 仙居县| 义马市| 通州区| 顺平县| 冀州市| 固原市| 曲周县| 阿鲁科尔沁旗| 鲜城| 晋江市| 井冈山市| 原阳县| 凤翔县| 乐至县| 临邑县| 右玉县| 陕西省| 涡阳县| 铜陵市| 镇坪县| 应用必备| 永德县| 富锦市| 拉萨市| 康保县| 正蓝旗| 高要市| 遵义县| 泸水县| 青川县| 葵青区| 辽中县| 甘南县| 秦皇岛市| 雷波县| 奉化市| 萝北县| 喀喇沁旗| 宁陵县|