vue 导出 文件 后台生成文件留
时间: 2023-09-05 11:02:55 浏览: 116
Vue可以通过使用axios发送请求获取后台生成的文件,然后使用FileSaver.js库将文件保存到本地。
首先,在Vue组件中引入axios和FileSaver.js库:
```
import axios from 'axios';
import FileSaver from 'file-saver';
```
然后,使用axios发送get请求获取后台生成的文件:
```
axios.get('api/url', { responseType: 'blob' })
.then(response => {
const blob = new Blob([response.data], { type: response.headers['content-type'] });
const fileName = response.headers['content-disposition'].split('filename=')[1];
FileSaver.saveAs(blob, fileName);
})
.catch(error => {
console.log(error);
});
```
在上述代码中,需要将'api/url'替换为实际请求后台生成文件的接口地址。该接口返回的响应数据类型被设置为'blob',以便能够正确处理文件数据。
在成功获得响应后,我们使用Blob对象创建文件,同时获取文件名。然后使用FileSaver.saveAs方法保存文件到本地,该方法需要两个参数:Blob对象和要保存的文件名。
最后,如果请求出现错误,打印错误到控制台。
这样,当Vue应用调用该方法时,将会向后台发送请求来生成文件,并将生成的文件保存到用户本地。
阅读全文