前端开发中,经常遇到文件下载的功能。这里对常见的文件下载方式做一些总结。
一、直接下载
针对一些浏览器无法识别的文件格式。可以直接在地址栏上输入URL即可触发浏览器的下载功能。
同类的还有window.location.href、window.open
- 地址栏输入文件URL
- window.location.href = URL
- window.open(URL)
二、直接下载(使用a标签download属性)
直接下载仅使用的浏览器无法识别的文件。如果是浏览器支持的文件格式(如:html、jpg、png)等。则不会触发文件下载,而是被浏览器直接触发解析展示。
针对这种情况,我们可以使用a标签的download属性,可以设置文件名。
写法如下:
开发中,我们遇到的还有一部分场景是js直接触发下载,也是相同的做法,我们可以手动写一个a标签。appen到body里边,触发下载之后,将其remove
示例如下(生产环境注意各浏览器事件的兼容性写法):
const download = (filename, link) => {let DownloadLink = document.createElement('a'); DownloadLink.style = 'display: none'; // 创建一个隐藏的a标签 DownloadLink.download = f