如果想通過純前端技術實現文件下載,直接把a標簽的href屬性設置為文件路徑即可
//downloadSrc即為接口的地址即可 <a href={downloadSrc}> <Button>Download</Button> </a>
但是后端傳的是文件流,這樣下載的是markDown文件,如果想轉換成其他格式文件,就要解析文件流,然后通過a標簽下載解析出來的數據。
// 下載服務的Markdown文件 export async function downloadMDService() { return request(downloadSrc, { method: 'get', params, responseType: 'blob',//必須加 }); }
const downloadFn = async () => { const res = await downloadMDService(); if (res) { const url = window.URL.createObjectURL(new Blob([res])); const link = document.createElement('a');//創建a標簽 link.style.display = 'none'; link.href = url;////設置a標簽路徑 link.download = 'file';//設置文件名 document.body.appendChild(link); link.click(); URL.revokeObjectURL(link.href); // 釋放 URL對象 document.body.removeChild(link); } };