网上很多用a标签进行下载,但是由于jep,npg等格式文件浏览器会自动打开,故用下方法进行下载
调用
文件url示例:http://localhost:9300/statics/project_61/design/2021/12/29/bb71ccd8-8e8a-469a-9a31-0a15e26ad691.jpg
// 保存到本地并自动点击
saveAs(data, name) {
const urlObject = window.URL || window.webkitURL || window;
const export_blob = new Blob([data]);
const save_link = document.createElementNS('http://www.w3.org/1999/xhtml', 'a');
save_link.href = urlObject.createObjectURL(export_blob);
save_link.download = name;
save_link.click();
},
/**
* 下载文件
* @param url 文件地址
* @param fileName 文件名称
* @private
*/
_downLoad(url, fileName) {
const url2 = url.replace(/\\/g, "/");
const xhr = new XMLHttpRequest();
xhr.open("GET", url2, true);
xhr.responseType = "blob";
//xhr.setRequestHeader('Authorization', 'Basic a2VybWl0Omtlcm1pdA==');
// 为了避免大文件影响用户体验,建议加loading
xhr.onload = () => {
if (xhr.status === 200) {
// 获取文件blob数据并保存
this.saveAs(xhr.response, fileName);
}
};
xhr.send();
},