通常实现下载需求时候 会使用a标签 设置a标签的href为需要下载的资源路径 调用click点击事件就会实现下载
但是如果需要下载的资源类型是浏览器可以解析的 比如txt等 浏览器不会触发下载而是会直接打开资源预览
此时可以为a标签添加download属性 通过download设置下载的文件名和后缀 此时任何类型资源就都可实现下载
但是如果资源不是同源 浏览器同样会直接打开预览
一、下载的方式
a标签实现下载:
设置a标签的download属性 并调用click方法
window.open()实现下载
widnow.open('下载的地址') 利用打开新tab方式实现下载
如果资源是浏览器无法解析的类型 会关闭tab 触发下载
但是如果资源是浏览器可以解析的类型 还是会直接打开预览
构造表单方式
构造表单方式即是通过动态创建表单元素
设置action为资源下载路径
设置表单隐藏并调用表单的submit方式
同样针对浏览器无法解析的类型会下载 浏览器可解析的资源类型会直接打开预览
二、downloadjs的使用
1、安装及在vue页面的基本使用
npm install downloadjs -D
在vue页面的使用
<el-button plain type="info" icon="el-icon-download" @click="onDownload">下载</el-button>
import download from "downloadjs"
onDownload(){
const fileName = '自己的文件名.自己的文件格式(.json/.txt等)';
const text = JSON.stringify(this.stsbResultAll) # 自己文件的内容
download(text, fileName, "text/plain");
}
2、downloadjs的基本使用
download.js是将下载的所有方式进行结合 针对不同情况内部做了处理
基本使用:
1、将数据资源写入文件中并下载
var blob = new Blob(['哈哈哈哈']);
download(blob,'test1.txt','text/plain')
2、生成txt文件并下载
conat str ='hello';
download(str,'test2.txt','text/plain')
.......