vue 接收后端文件 并下载
时间: 2023-09-03 20:07:32 浏览: 118
如果你想要实现前端通过 Vue 接收后端返回的文件并且下载,可以使用以下代码:
```javascript
axios({
method: 'get',
url: 'your-backend-api-url',
responseType: 'blob'
}).then(res => {
const link = document.createElement('a')
let blob = new Blob([res.data], {type: 'application/octet-stream'})
link.style.display = 'none'
link.href = URL.createObjectURL(blob)
link.download = 'your-file-name'
link.click()
URL.revokeObjectURL(link.href)
})
```
其中 `axios` 是一个常用的前端 HTTP 请求库,`responseType` 为 `blob` 表示返回的数据类型为二进制流,`Blob` 类型可以将二进制流转化为文件对象,而 `link` 则是动态创建的一个下载链接,通过 `click` 方法模拟了用户点击下载的操作。
你可以将以上代码封装成一个下载函数,直接调用即可,例如:
```javascript
function downloadFile(url, fileName) {
axios({
method: 'get',
url: url,
responseType: 'blob'
}).then(res => {
const link = document.createElement('a')
let blob = new Blob([res.data], {type: 'application/octet-stream'})
link.style.display = 'none'
link.href = URL.createObjectURL(blob)
link.download = fileName
link.click()
URL.revokeObjectURL(link.href)
})
}
downloadFile('your-backend-api-url', 'your-file-name')
```
当然,以上代码只是一个简单的示例,具体的实现还需要根据你的后端 API 接口和业务需求来进行调整。
阅读全文