个人博客 个人博客
首页
  • 前端
  • 后端
  • Git
  • Docker
  • 网络
  • 操作系统
工具
阅读
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

董先亮

前端react开发
首页
  • 前端
  • 后端
  • Git
  • Docker
  • 网络
  • 操作系统
工具
阅读
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • HTML

    • a标签下载设置文件名
      • a标签下载文件
      • js模拟a标签下载
      • blob方式进行下载
  • CSS

  • JavaScript

  • TypeScript

  • 前端基础
  • HTML
NeverStop1024
2023-01-06
目录

a标签下载设置文件名

# a标签下载文件

<a href='http://192.168.1.1/abcd.xlsx' download='file.xlsx'>下载</a>
1

# js模拟a标签下载

const downlad = (url: any, fileName: any) => {
  const newUrl = url
  const link = document.createElement('a')
  link.href = newUrl
  link.download = fileName
  link.target = '_blank'
  link.style.display = 'none'
  document.body.append(link)
  link.click()
}
1
2
3
4
5
6
7
8
9
10

注意:

  • download属性设置fileName只有文件地址与当前地址栏同源才有效

# blob方式进行下载

const downlad = (urls: any, fileName: any) => {
  const x = new window.XMLHttpRequest();
  x.open('GET', urls, true);
  x.responseType = 'blob';
  x.onload = () => {
    const url = window.URL.createObjectURL(x.response);
    const a = document.createElement('a');
    a.href = url;
    a.target = '_blank'
    a.download = fileName;
    a.style.display = 'none'
    document.body.append(a)
    a.click();
  };
  x.send();
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
编辑 (opens new window)
上次更新: 2023/01/30
常见问题

常见问题→

最近更新
01
mock使用
07-12
02
websocket即时通讯
07-12
03
前端面试题
07-09
更多文章>
Theme by Vdoing | Copyright © 2022-2023 NeverStop1024 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式