vue 之从后端获取到文件的 url 地址,前端根据 url 地址文件下载
前言
项目用的是 vben admin 框架,用的是 vue3 + TS
项目需求数据导出功能,前端需要实现文件下载功能
后端返回的是文件的 url 地址 (本项目中返回的是阿里云 oss 的文件地址)
一、实现思路
从后端得到的是一个 url 地址,先通过 fetch api 请求这个 url 地址并转换成 blob 对象,通过 URL.createObjectUrl() 将 blob 对象生成 url 地址,绑定到 <a >
标签 的 href 属性上面,结合 download 来实现点击 <a >
标签下载文件
二、具体实现
1.完整代码
代码如下:
function exportData() {
let data = getForm().getFieldsValue();
exportTowerHistoryToExcel({
deviceId, createTime: data.startTime }).then((url) => {
downLoadFile(url);
});