a标签下载
a标签下载是最简单好用的方法
<a href="./demo.txt" download>下载</a>
通过download还可以修改文件下载后的名字和类型:
<a href="./demo.txt" download="text">下载</a>
注意:当资源不是同源的,下载txt、图片文件文件download属性是无效的,加与不加一个样,还是会直接打开,但是其他类型文件是可以的,例如:docx文件、pdf文件等
<a href="http://8.129.**.**/text.txt" download="text">下载</a>
不同源点击直接打开txt文件:
docx文件可以实现:
<a href="http://8.129.**.**/text.docx" download="text">下载</a>
接口下载
所以如果是不同源文件下载,还是要后端写一个接口,前端直接获取file类型的数据,然后实现下载:
// dom中创建a标签
let aTag = document.createElement('a')
// 给创建的a标签添加download属性,此属性是让我们的浏览器下载URL而不是跳转到URL所指向的内容(同 时,下载的文件名为log.txt)
aTag.download = 'log.txt'
// 给创建的a标签添加href属性并赋值,blob是从后端获取的file类型数据
aTag.href = URL.createObjectURL(blob)
// 自动点击创建的标签
aTag.click()