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-form表单验证是否为空值的实例详解

    vue-form表单验证是否为空值的实例详解

    今天小编就为大家分享一篇vue-form表单验证是否为空值的实例详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • vue动态设置img的src路径实例

    vue动态设置img的src路径实例

    今天小编就为大家分享一篇vue动态设置img的src路径实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • Vue-cli中为单独页面设置背景色的实现方法

    Vue-cli中为单独页面设置背景色的实现方法

    下面小编就为大家分享一篇Vue-cli中为单独页面设置背景色的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-02-02
  • vue props对象validator自定义函数实例

    vue props对象validator自定义函数实例

    今天小编就为大家分享一篇vue props对象validator自定义函数实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • vue项目中使用AvueJs的详细教程

    vue项目中使用AvueJs的详细教程

    Avue.js是基于现有的element-ui库进行的二次封装,简化一些繁琐的操作,核心理念为数据驱动视图,主要的组件库针对table表格和form表单场景,这篇文章给大家介绍了vue项目中使用AvueJs的相关知识,感兴趣的朋友跟随小编一起看看吧
    2022-10-10
  • 基于vue3和element plus实现甘特图

    基于vue3和element plus实现甘特图

    甘特图是一种重要的项目管理工具,它可以通过图形化的方式展示项目的进度和时间表,甘特图通常由一个横轴和一个纵轴组成,甘特图对于项目管理非常重要,所以本文给大家介绍了如何基于vue3和element plus实现甘特图,需要的朋友可以参考下
    2024-06-06
  • vue-router+nginx 非根路径配置方法

    vue-router+nginx 非根路径配置方法

    这篇文章主要介绍了vue-router+nginx 非根路径配置方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • Vue3中watch监听对象的属性值(监听源必须是一个getter函数)

    Vue3中watch监听对象的属性值(监听源必须是一个getter函数)

    这篇文章主要介绍了Vue3中watch监听对象的属性值,监听源必须是一个getter函数,本文结合示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-12-12
  • Vue开发中遇到的跨域问题及解决方法

    Vue开发中遇到的跨域问题及解决方法

    在本篇文章里小编给大家整理的是关于Vue开发中遇到的跨域问题及解决方法,需要的朋友们可以学习下。
    2020-02-02
  • vue3中使用ant-design-vue的layout组件实现动态导航栏和面包屑功能

    vue3中使用ant-design-vue的layout组件实现动态导航栏和面包屑功能

    这篇文章主要介绍了vue3中使用ant-design-vue的layout组件实现动态导航栏和面包屑功能,基于一个新建的Vue3项目上实现,本文结合示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-01-01

最新评论