vue2将后端返回的文件流下载为xlsx文件
时间: 2024-09-09 22:11:33 浏览: 69
vueCli3.0文件上传后,后端返回流,前端转换成pdf预览的3种方式
5星 · 资源好评率100%
在Vue.js 2中,如果你想将后端返回的文件流转换并下载为Excel(xlsx)文件,可以按照以下步骤操作:
1. **设置axios请求**:首先,你需要使用axios等库发送异步请求到后端,并获取文件流数据。例如:
```javascript
import axios from 'axios';
const downloadFile = async (url) => {
const response = await axios.get(url, { responseType: 'stream' });
}
```
这里`responseType: 'stream'`使得axios能够处理响应体作为流。
2. **创建blob对象**:然后,你可以将文件流转化为Blob对象,这是浏览器支持的二进制对象:
```javascript
const blob = new Blob([response.data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8' });
```
注意这里的`type`属性应设置为正确的Excel MIME类型。
3. **生成URL并下载**:利用Blob URL.createObjectURL()方法创建一个临时的URL,用户可以通过这个URL直接下载文件:
```javascript
const url = window.URL.createObjectURL(blob);
window.open(url, '_blank');
```
4. **清理资源**:下载完成后别忘了删除临时URL,释放内存:
```javascript
setTimeout(() => {
window.URL.revokeObjectURL(url);
}, 0); // 确保下载完成后再删除
```
阅读全文