vue element中axios下载文件(后端Python)

 更新时间:2019年05月10日 14:58:36   作者:binger0712  
这篇文章主要介绍了vue element中axios下载文件(后端Python)的实例代码,非常不错,具有一定的参考借鉴价值 ,需要的朋友可以参考下

•axios 接受文件流,需要设置 {responseType:'arraybuffer'}

axios.post(
  apiUrl,
  formdata, 
  {responseType:'arraybuffer'}
).then(res=> {
  if (res.status === 200) {
   let blob = new Blob([res.data], {
    type: res.headers['content-type']
    });

    const fileName = res.headers['content-disposition'];
   const title = fileName && (fileName.indexOf('filename=') !== -1) ? fileName.split('=')[1] : 'download';

    require('script-loader!file-saver');
   saveAs(blob, title);
} 
})
.catch();

注: axios 中 response 表示服务器响应的数据类型,可以是 arraybuffer , blob, document , json , text , stream . 默认为: json

•后端发送文件:Python

from flask import send_from_directory
@admin_bp.route('/tasksothers/download', methods=["GET", "POST"])
@auth.login_required
def api_tasksothers_download():
    root_path = ''
    src_name = "a.sql"
    upload_path = os.path.join(root_path, src_name)
    print("upload_path =", upload_path)
    if os.path.isfile(upload_path):
      response = send_from_directory(root_path, src_name, as_attachment=True)
      print("response: ",response)

      response.headers["Access-Control-Expose-Headers"] = "Content-disposition"
      print("response: ", response.headers)
      return response  

注: 如果 response.header 中没有添加  Access-Control-Expose-Headers 这个参数(代表:服务器允许浏览器访问的头(headers)的白名单),vue中就无法获取 content-disposition,即 res.headers['content-disposition'];无法找到

总结

以上所述是小编给大家给大家介绍的vue element中axios下载文件(后端Python),希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

相关文章

  • 详解vue修改elementUI的分页组件视图没更新问题

    详解vue修改elementUI的分页组件视图没更新问题

    这篇文章主要介绍了详解vue修改elementUI的分页组件视图没更新问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • vue关于eslint空格缩进等的报错问题及解决

    vue关于eslint空格缩进等的报错问题及解决

    这篇文章主要介绍了vue关于eslint空格缩进等的报错问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • 基于Vue+Webpack拆分路由文件实现管理

    基于Vue+Webpack拆分路由文件实现管理

    这篇文章主要介绍了基于Vue+Webpack拆分路由文件实现管理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • vue中bus的使用及踩坑解决

    vue中bus的使用及踩坑解决

    这篇文章主要为大家详细介绍了vue中bus的相关使用以及涉及到的问题与解决,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起了解一下
    2023-08-08
  • vue前端代码如何通过maven打成jar包运行

    vue前端代码如何通过maven打成jar包运行

    这篇文章主要介绍了vue前端代码如何通过maven打成jar包运行问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • Vue + Element 实现按钮指定间隔时间点击思路详解

    Vue + Element 实现按钮指定间隔时间点击思路详解

    这篇文章主要介绍了Vue + Element 实现按钮指定间隔时间点击,实现思路大概是通过加一个本地缓存的时间戳,通过时间戳计算指定时间内不能点击按钮,具体实现代码跟随小编一起看看吧
    2023-12-12
  • vue动态绑定class的几种常用方式小结

    vue动态绑定class的几种常用方式小结

    这篇文章主要介绍了vue动态绑定class的几种常用方式,结合实例形式总结分析了vue.js常见的对象方法、数组方法进行class动态绑定相关操作技巧,需要的朋友可以参考下
    2019-05-05
  • Vue实现简单的跑马灯

    Vue实现简单的跑马灯

    这篇文章主要为大家详细介绍了Vue实现简单的跑马灯,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • vue element 中的table动态渲染实现(动态表头)

    vue element 中的table动态渲染实现(动态表头)

    这篇文章主要介绍了vue element 中的table动态渲染实现(动态表头),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • Vue中进行数据筛选与搜索功能实现常用的方法

    Vue中进行数据筛选与搜索功能实现常用的方法

    表格常用功能经常有字段筛选、更多字段筛选弹框来过滤出我们所需要的数据,下面这篇文章主要给大家介绍了关于Vue中进行数据筛选与搜索功能实现常用的方法,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-12-12

最新评论