在前端下載東西的時候, 有些情況下後端 會提供二進制數據給我們, 我們前端應該如何處理呢?
一 , 在請求頭加上 我們要的返回 類型 blob
{ responseType: 'blob', observe: 'response' }
二,前端 拿到blob 數據 後怎麼處理
/** 下載模板 */
downloadTemplate() {
this.backendService.downloadWorkflowTemplate().subscribe(data => { // 這裏可以忽略只是拿到blob 數據
const link = document.createElement('a');
const blob = new Blob([data.body], { type: 'application/zip' });
// 後面是用 a 標籤 的 download 去下載
link.setAttribute('href', window.URL.createObjectURL(blob));
link.setAttribute('download', '模板.xlsx'); // 這裏是文件名字和後綴
link.style.visibility = 'hidden';
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
});
}