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

Python是一种高级编程语言,具有简单易学、开发效率高等优点。它被广泛应用于数据分析、人工智能、Web开发等领域。Vue是一种流行的前端开发框架,可以快速构建交互性强的用户界面。ElementVue的一个UI组件库,提供了丰富的UI组件和交互效果,使开发者可以更便捷地构建漂亮的前端界面。Django是一个基于Python的Web开发框架,提供了许多便捷的功能,如数据库操作、用户认证等,使开发者可以快速构建高性能的Web应用程序。 PythonVue是完全不同的技术栈,但它们可以在项目很好地协同工作。例如,使用Python的Django框架作为后端处理业务逻辑和数据存储,可以通过Django提供的API与Vue前端进行数据交互。Vue的页面可以通过Axios等工具与Django后端进行异步通信,实现前后端分离的开发模式。 在实际开发,常常需要使用Element组件库来构建界面。Element提供了丰富的UI组件,并且可以与Vue非常好地集成。通过使用Element,开发者可以快速构建漂亮且具有交互性的前端界面。 对于想深入学习这些技术的人来说,研究源码是一个很好的方法。通过阅读源码,可以更好地理解这些框架的内部实现原理,提高自己对技术的理解和运用能力。 总而言之,PythonVueElement和Django是四种不同的技术,但它们可以结合使用,实现高效、快速地开发Web应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值