前端文件下载问题

1, 下载后端返回的blob文件

1
2
3
4
5
6
7
8
9
10
11
12
// 下载blob文件(注意请求需要加上responseType: 'blob')
export const downloadBlob = (res: Blob, fileName: string): void => {
  let blob = new Blob([res])
  let url = window.URL.createObjectURL(blob)
  let downloadElement = document.createElement('a')
  downloadElement.style.display = 'none'
  downloadElement.download = fileName
  downloadElement.href = url
  document.body.appendChild(downloadElement)
  downloadElement.click()
  document.body.removeChild(downloadElement)
}

 

2, 浏览器下载 txt,jpg等文件而不是自动打开预览

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 下载链接内容(解决浏览器下载 txt,jpg等文件自动打开预览页面的问题)
export const downloadLink = (fileUrl: string, fileName: string): void => {
  fetch(fileUrl)
    .then((res) => res.blob())
    .then((blob) => {
      // 将链接地址字符内容转变成blob地址
      const link = document.createElement('a')
      link.href = URL.createObjectURL(blob)
      link.download = fileName
      link.target = '_blank'
      document.body.appendChild(link)
      link.click()
      link.remove()
    })
    .catch(() => {
      alert('下载文件失败')
    })
}

  

posted @   北巷听雨  阅读(95)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
返回顶端
点击右上角即可分享
微信分享提示