博客
关于我
vue使用axios接收后台返回的文件流下载文件
阅读量:509 次
发布时间:2019-03-07

本文共 1183 字,大约阅读时间需要 3 分钟。

后台接口返回数据处理

在实际项目中,我们经常需要通过后台接口获取数据并进行处理。以下是一种常见的技术实现方案,重点介绍了文件下载功能的实现方式。

axios fetch 实现

我们可以使用 axios 进行异步请求,以下是代码示例:

this.axios({    method: "get",    headers: {        "content-type": "application/json",        Authorization: "Bearer " + sessionStorage.getItem("access_token")    },    url: 'your_URL',    params: {'name':'Jack'},    responseType: "blob"}).then(function (res) {    // 处理 blob 数据    let blob = new Blob([res.data]);    let url = window.URL.createObjectURL(blob);        // 创建下载链接    let a = document.createElement("a");    a.href = url;    a.download = "表格.xlsx";    a.click();        // 释放 url    window.URL.revokeObjectURL(url);}).catch(function (res) {    console.log("error", res);});

注意事项

  • responseType 必须设置为 "blob":这一步非常关键。如果忘记设置 responseType 为 "blob",下载的文件可能会损坏,导致无法正常打开。

  • 文件处理流程:从接口返回的 blob 数据开始,创建 Blob 对象后,可以通过 window.URL.createObjectURL() 创建临时 url,用于操作文件。

  • 文件下载实现:通过创建一个 anchor 元素(<a>),设置其 href 为临时 url,并指定 download属性,用户点击后即可下载文件。

  • 实现效果

    通过上述方法,用户可以在浏览器中直接下载所需的文件,操作流程简洁易懂。该方法适用于需要将后台接口返回的二维数据(如 Excel 文件)直接展示给用户的场景。

    可扩展性

    该方案基于现代浏览器的 Blob API 实现,兼容性较高。需要注意的是,某些老旧浏览器可能不支持此方法,具体可根据项目需求进行适配。

    总结

    通过上述方法,我们可以轻松实现后台接口返回数据的文件下载功能。关键在于正确设置 responseType 和正确处理 blob 数据。

    转载地址:http://nuwnz.baihongyu.com/

    你可能感兴趣的文章
    NSOperation基本操作
    查看>>
    NSSet集合 无序的 不能重复的
    查看>>
    NT AUTHORITY\NETWORK SERVICE 权限问题
    查看>>
    ntko文件存取错误_苹果推送 macOS 10.15.4:iCloud 云盘文件夹共享终于来了
    查看>>
    Nuget~管理自己的包包
    查看>>
    nullnullHuge Pages
    查看>>
    NumPy 或 Pandas:将数组类型保持为整数,同时具有 NaN 值
    查看>>
    numpy 用法
    查看>>
    Numpy如何使用np.umprod重写range函数中i的python
    查看>>
    oauth2-shiro 添加 redis 实现版本
    查看>>
    OAuth2.0_JWT令牌-生成令牌和校验令牌_Spring Security OAuth2.0认证授权---springcloud工作笔记148
    查看>>
    OAuth2.0_JWT令牌介绍_Spring Security OAuth2.0认证授权---springcloud工作笔记147
    查看>>
    OAuth2.0_介绍_Spring Security OAuth2.0认证授权---springcloud工作笔记137
    查看>>
    OAuth2.0_完善环境配置_把资源微服务客户端信息_授权码存入到数据库_Spring Security OAuth2.0认证授权---springcloud工作笔记149
    查看>>
    OAuth2.0_授权服务配置_Spring Security OAuth2.0认证授权---springcloud工作笔记140
    查看>>
    OAuth2.0_授权服务配置_令牌服务和令牌端点配置_Spring Security OAuth2.0认证授权---springcloud工作笔记143
    查看>>
    OAuth2.0_授权服务配置_客户端详情配置_Spring Security OAuth2.0认证授权---springcloud工作笔记142
    查看>>
    OAuth2.0_授权服务配置_密码模式及其他模式_Spring Security OAuth2.0认证授权---springcloud工作笔记145
    查看>>
    OAuth2.0_授权服务配置_资源服务测试_Spring Security OAuth2.0认证授权---springcloud工作笔记146
    查看>>
    OAuth2.0_环境介绍_授权服务和资源服务_Spring Security OAuth2.0认证授权---springcloud工作笔记138
    查看>>