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 相关文章推荐
jquery插件制作 表单验证实现代码
Aug 17 Javascript
javascript简单事件处理和with用法介绍
Sep 16 Javascript
鼠标划过实现延迟加载并隐藏层的js代码
Oct 11 Javascript
我用的一些Node.js开发工具、开发包、框架等总结
Sep 25 Javascript
JavaScript实现的简单拖拽效果
Jun 01 Javascript
不得不分享的JavaScript常用方法函数集(上)
Dec 23 Javascript
利用jquery禁止外层滚动条的滚动
Jan 05 Javascript
js实现点击切换checkbox背景图片的简单实例
May 08 Javascript
简单实现jQuery弹窗效果
Oct 30 jQuery
在Vue-cli里应用Vuex的state和mutations方法
Sep 16 Javascript
vue最简单的前后端交互示例详解
Oct 11 Javascript
js重写alert事件(避免alert弹框标题出现网址)
Dec 04 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操作XML、读取数据和写入数据的实现代码
2014/08/15 PHP
php+mysql实现用户注册登陆的方法
2015/01/03 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
2015/10/20 PHP
Docker配置PHP开发环境教程
2016/12/21 PHP
用javascript实现无刷新更新数据的详细步骤 asp
2006/12/26 Javascript
避免 showModalDialog 弹出新窗体的原因分析
2010/05/31 Javascript
javascript+xml实现简单图片轮换(只支持IE)
2012/12/23 Javascript
JavaScript简单实现鼠标拖动选择功能
2014/03/06 Javascript
JQuery显示、隐藏div的几种方法简明总结
2015/04/16 Javascript
jquery实现表格隔行换色效果
2015/11/19 Javascript
轻松实现JavaScript图片切换
2016/01/12 Javascript
jquery中键盘事件小结
2016/02/24 Javascript
JS判断字符串字节数并截取长度的方法
2016/03/05 Javascript
基于Node的React图片上传组件实现实例代码
2017/05/10 Javascript
ES6下子组件调用父组件的方法(推荐)
2018/02/23 Javascript
layer.prompt输入层的例子
2019/09/24 Javascript
weui上传多图片,压缩,base64编码的示例代码
2020/06/22 Javascript
[50:58]2018DOTA2亚洲邀请赛3月29日 小组赛A组OpTic VS Newbee
2018/03/30 DOTA
[32:39]完美世界DOTA2联赛循环赛 Forest vs Inki BO2第一场 11.04
2020/11/04 DOTA
Python实现统计单词出现的个数
2015/05/28 Python
bpython 功能强大的Python shell
2016/02/16 Python
Django中的Signal代码详解
2018/02/05 Python
python多线程之事件Event的使用详解
2018/04/27 Python
Python内置方法实现字符串的秘钥加解密(推荐)
2019/12/09 Python
matplotlib绘制鼠标的十字光标的实现(内置方式)
2021/01/06 Python
在PyCharm中安装PaddlePaddle的方法
2021/02/05 Python
旅游管理实习自我鉴定
2013/09/29 职场文书
经贸日语毕业生自荐信
2013/11/03 职场文书
高一数学教学反思
2014/02/07 职场文书
《最大的麦穗》教学反思
2014/04/17 职场文书
2015年服务员个人工作总结
2015/05/27 职场文书
学习经验交流会总结
2015/11/02 职场文书
爱岗敬业先进典型事迹材料(2016推荐版)
2016/02/26 职场文书
《工作是最好的修行》读后感3篇
2019/12/13 职场文书
Python list去重且保持原顺序不变的方法
2021/04/03 Python
SqlServer数据库远程连接案例教程
2021/07/15 SQL Server