首先关于前端下载肯定会想到a链接,但是我在使用的时候发现a标签会打开这个网址而不是下载文件,所以我发现了一个好的方法,感觉不错,来分享一下
话不多说,上代码
// 下载文件 _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数据并保存 saveAs(xhr.response, fileName); } }; xhr.send(); },
url表示文件的路径,fileName表示下载文件名