前端实现文件下载功能
前端实现下载功能时,记录使用接口返回文件流得形式进行下载
1,可以通过后端返回的链接a标签直接下载
2,有时候是后端接口返回得文件流进行下载
3,前端生成表格文件下载
第一步我们写一个获取 blob 得方法
/**
* 获取 blob
* @param {String} url 目标文件地址
* @return {Promise}
*/
function getBlob (url) {
return new Promise(resolve => {
const xhr = new XMLHttpRequest()
xhr.open('get', url, true)
xhr.responseType = 'blob'
xhr.onload = () => {
if (xhr.status === 200) {
resolve(xhr.response)
}
}
xhr.send()
})
}
第二步
/**
* 保存
* @param {Blob} blob
* @param {String} filename 想要保存的文件名称
*/
function saveAs (blob, filename)