文章

文件下载

文件下载

文件下载

由于谷歌浏览器机制问题,pdf文件下载和图片下载会有区别,pdf文件会打开一个预览页面,在预览页点击下载按钮下载。

完整的文件下载

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
let url = row.fileUrl
let name = row.fileName
// 发送http请求,将文件链接转换成文件流
let xhr = new XMLHttpRequest()
xhr.open('get', url, true)
// 请求类型
xhr.responseType = 'blob'
xhr.onreadystatechange = function() {
  // 获取接口结果
  if (xhr.readyState === 4 && xhr.status === 200) {
    let a = document.createElement('a')
    let blob = new Blob([xhr.response])
    // 通过二进制文件创建url
    let url = window.URL.createObjectURL(blob)
    a.href = url
    a.download = name
    a.click()
    // 销毁创建的url
    window.URL.revokeObjectURL(url)
  }
}
xhr.send()
本文由作者按照 CC BY 4.0 进行授权