通过标签下载文件
- 项目需要下载execl后台文件,通过接口下载并使用js文档流程
- 单独创建一个js文件,本地使用导入
export function $_downloadFile(obj, name, suffix) {
const DOWNLOAD_TYPE_MAP = {
xls: 'application/vnd.ms-excel',
xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
doc: 'application/msword',
docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
pdf: 'application/pdf'
}
if (!DOWNLOAD_TYPE_MAP[suffix]) {
throw new Error('请传入文件下载的格式后缀,eg:xls,xlsx,doc,docx,pdf')
}
const blob = new Blob([obj], {
type: DOWNLOAD_TYPE_MAP[suffix]
})
const fileName = `${name}.${suffix}`
let link = document.createElement('a')
document.body.appendChild(link)
link.href = URL.createObjectURL(blob)
link.setAttribute('download', fileName)
link.click()
document.body.removeChild(link)
URL.revokeObjectURL(link.href) // 销毁url对象
}
3。使用
//接口
export function exportExcel(data) {
return request({
url: '/item/exportExcel',
method: 'get',
responseType: 'blob', //一定要加,不然无效
params: { ...data }
})
}
//用法
import { $_downloadFile } from '@/utils/download'
//接口中使用
exportExcel(queryData)
.then(res => {
$_downloadFile(res, '导出文件名', 'xlsx') //res:返回数据
})
.catch(() => {})
真实有效可使用特此记录! ! !
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。