主要是先通过请求获取文件的blob,然后触发a标签的点击事件来下载
前端请求接口设置文件下载的接受类型限制
export function downloadApiCenterTree(){
return request({
url: '/knowledge-server/api/knows/tree/exportTemplate',
method: 'get',
responseType:'blob'
})
}
页面上标签 <a :href="href" download="example.xlsx" ref="downloadFile" style="height:0px;"></a>
文件下载接口请求后,
const href=ref()//a链接接口地址
const downloadFile=ref()//aDom元素
getExcelModelApi().then(res=>{
let url = window.URL.createObjectURL(new Blob([res.data]))
href.value = url
nextTick(() => {
downloadFile.value.click()
})
})
window.URL.createObjectURL是 JavaScript 中的一个方法,可以将一个本地文件或者一个 Blob
对象转换成一个可供网页使用的 URL。这个方法可以用来显示本地文件或者 Blob
对象,例如图片或者音频。使用时需要传入一个本地文件或者 Blob
对象作为参数。
使用完 URL 对象后,应该调用 window.URL.revokeObjectURL
函数来释放资源。