js前端下载二进制流文件

1,661 阅读1分钟

第一种方法:打开新页面下载

window.open('http://www.baidu.com','_blank');

第二种方法:二进制流转文件

接口返回类型为blob
export const downloadWorkhourTemp = ()=>{
  return request.java({
    url: `/api/tForecastWorkHours/exportTemplate`,
    method: "get",
    responseType: 'blob'
  });
}

// 导出报表
downloadWorkhourTemp().then(data=>{
    var blob = new Blob([data], {type: "application/vnd.ms-excel"});
    var objectUrl = URL.createObjectURL(blob);
    var a = document.createElement('a');
    document.body.appendChild(a);
    a.setAttribute('style', 'display:none');
    a.setAttribute('href', objectUrl);
    var filename="预测工时模板.xlsx";
    a.setAttribute('download', filename);
    a.click();
    URL.revokeObjectURL(objectUrl);
})