- 通过URL下载文件
/**
* 通过URL下载文件
*
* @param url 文件下载地址
* @param fileName 文件名,默认为空字符串
* @param cb 下载完成后的回调函数,可选
*/
export const downloadByUrl = (url, fileName = "", cb) => {
const eleLink = document.createElement("a");
eleLink.style.display = "none";
eleLink.setAttribute("download", fileName);
eleLink.setAttribute("href", url);
document.body.appendChild(eleLink);
eleLink.click();
document.body.removeChild(eleLink);
cb && cb();
};
download: 修改下载文件的名称
同源域名下 download 才生效,需要下载地址和项目网址域名相同
- 通过文件流下载文件
// 附件下载
async handelDownload(fileName) {
const data = await getfile()
const blob = new Blob([data])
const downloadElement = document.createElement('a')
const href = window.URL.createObjectURL(blob)
downloadElement.href = href
downloadElement.download = fileName
document.body.appendChild(downloadElement)
downloadElement.click()
document.body.removeChild(downloadElement)
window.URL.revokeObjectURL(href)
}
- 通过file-saver插件下载
import FileSaver from "file-saver";
export default class fileSave {
static getDown(data, filename) {
let blob = new Blob([data], {
type: data.type
});
FileSaver.saveAs(blob, filename);
}
}
// data是接口返回的文件流
exportFile.getDown(data, filename);