使用JavaScript进行文件下载

通过创建 a 标签进行下载

后端返回数据:

{
    "result": {
        "fileName":"xxxx.xls",
        "fileData":"data:application/vnd.ms-excel;base64,0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAOwADAP7/CQAGAAAAAAAAAAAAAAABAAAAPgAAAAAA....."
    }
}

前端处理:

/* 模拟 a 标签的点击下载*/
let {result} = response
let {fileName, fileData} = result

let a = document.createElement("a")
a.href = fileData
a.download = fileName

document.body.appendChild(a)

a.click()
a.remove()

跨域下载文件

Fetch API 提供了一个 JavaScript接口,用于访问和操纵HTTP管道的部分,例如请求和响应。它还提供了一个全局 fetch()方法,该方法提供了一种简单,合理的方式来跨网络异步获取资源。

fetch(远程文件URL).then(res => res.blob().then(blob => {
    var a = document.createElement('a');
    var url = window.URL.createObjectURL(blob);
    var filename = row.title;
    a.href = url;
    a.download = filename;
    a.click();
    window.URL.revokeObjectURL(url);
}))
内容来源于网络或书籍
原文地址:https://www.cnblogs.com/my3306/p/9712500.html