使用a标签下载文件
// 返回格式是文件流格式
// 在请求拿到文件流res以后,使用a标签下载
let pdfData = res.data
let blob = new Blob([ pdfData], {
type: `${this.fileBlobType};charset=utf-8;`
})
var a = document.createElement('a');
document.body.appendChild(a);
a.style = 'display: none';
var url = window.URL.createObjectURL(blob);
a.href = url;
a.setAttribute('download', filename)
a.click();
a.remove();
window.URL.revokeObjectURL(url);
要注意不同文件的new blob后生成的对象type是不同的,需要自己定义,下面是几种常见类型
后缀名 | 文件类型 | type |
---|---|---|
.xls | Microsoft Excel | application/vnd.ms-excel |
.xlsx | Microsoft Excel (OpenXML) | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
.doc | Microsoft Word | application/msword |
.docx | Microsoft Word (OpenXML) | application/vnd.openxmlformats-officedocument.wordprocessingml.document |
application/pdf | ||
.ppt | Microsoft PowerPoint | application/vnd.ms-powerpoint |
.pptx | Microsoft PowerPoint (OpenXML) | application/vnd.openxmlformats-officedocument.presentationml.presentation |
.png | 便携式网络图形(PNG) | image/png |
.json | JSON 格式 | application/json |
但是,企业微信下载完文件会出现标题栏出现UnKnown文字如图,目前还没有解决!官网链接