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


Posted in Javascript onMay 10, 2019

•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),希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
JS实现浏览器菜单命令
Sep 05 Javascript
深入了解javascript中的prototype与继承
Apr 14 Javascript
解析JavaScript中delete操作符不能删除的对象
Dec 03 Javascript
浅谈轻量级js模板引擎simplite
Feb 13 Javascript
jQuery实现鼠标滑向当前图片高亮显示并且其它图片变灰的方法
Jul 27 Javascript
jQuery绑定事件监听bind和移除事件监听unbind用法实例详解
Jan 19 Javascript
简单实现的JQuery文本框水印插件
Jun 14 Javascript
原生JS实现简单放大镜效果
Feb 08 Javascript
原生js实现吸顶效果
Mar 13 Javascript
详解ES6中的代理模式——Proxy
Jan 08 Javascript
javascript 构建模块化开发过程解析
Sep 11 Javascript
vue 解决在微信内置浏览器中调用支付宝支付的情况
Nov 09 Javascript
微信小程序授权登录解决方案的代码实例(含未通过授权解决方案)
May 10 #Javascript
简单通过settimeout看javascript的运行机制
May 10 #Javascript
详解js实时获取并显示当前时间的方法
May 10 #Javascript
JS获取本地地址及天气的方法实例小结
May 10 #Javascript
Vue keepAlive 数据缓存工具实现返回上一个页面浏览的位置
May 10 #Javascript
vue无限轮播插件代码实例
May 10 #Javascript
js中的深浅拷贝问题简析
May 10 #Javascript
You might like
PHP项目开发中最常用的自定义函数整理
2010/12/02 PHP
Yii Framework框架获取分类下面的所有子类方法
2014/06/20 PHP
php中Y2K38的漏洞解决方法实例分析
2014/09/22 PHP
项目中应用Redis+Php的场景
2016/05/22 PHP
PHP实现网页内容html标签补全和过滤的方法小结【2种方法】
2017/04/27 PHP
PHP xpath()函数讲解
2019/02/11 PHP
PHP实现的62进制转10进制,10进制转62进制函数示例
2019/06/06 PHP
用javascript实现的激活输入框后隐藏初始内容
2007/06/29 Javascript
基于jquery的给文章加入关键字链接
2010/10/26 Javascript
别了 JavaScript中的isXX系列
2012/08/01 Javascript
Jquery实现图片左右自动滚动示例
2013/09/25 Javascript
jquery实现相册一下滑动两次的方法
2015/02/09 Javascript
百度多文件异步上传控件webuploader基本用法解析
2016/11/07 Javascript
详解nodejs中exports和module.exports的区别
2017/02/17 NodeJs
使用get方式提交表单在地址栏里面不显示提交信息
2017/02/21 Javascript
Angular网络请求的封装方法
2018/05/22 Javascript
vuex的module模块用法示例
2018/11/12 Javascript
Vue中使用JsonView来展示Json树的实例代码
2020/11/16 Javascript
Python基于pygame实现的弹力球效果(附源码)
2015/11/11 Python
利用Python开发微信支付的注意事项
2016/08/19 Python
Scrapy框架爬取西刺代理网免费高匿代理的实现代码
2019/02/22 Python
利用Pandas和Numpy按时间戳将数据以Groupby方式分组
2019/07/22 Python
Stutterheim瑞典:瑞典高级外套时装品牌
2019/06/24 全球购物
大学生职业生涯规划书模版
2013/12/30 职场文书
公司培训心得体会
2014/01/03 职场文书
2014道德模范事迹材料
2014/02/16 职场文书
大型会议接待方案
2014/03/01 职场文书
小学二年级学生评语
2014/04/21 职场文书
5.12护士节演讲稿
2014/04/30 职场文书
大专生自荐书范文
2014/06/22 职场文书
房租涨价通知
2015/04/23 职场文书
导游词之徐州-云龙山
2019/09/29 职场文书
导游词之苏州盘门景区
2019/11/12 职场文书
导游词之四川熊猫基地
2020/01/13 职场文书
Python实现机器学习算法的分类
2021/06/03 Python
Redis配置外网可访问(redis远程连接不上)的方法
2022/12/24 Redis