python上传大图时以base64形式导致参数过长,后端迟迟接收不到请求

本文详细介绍了如何解决大文件上传的问题,通过使用MutipartEncoder替代传统的base64编码方式,实现了百兆级别文件的快速传输,适用于Python开发环境下。

上传大图这个问题,断断续续困扰了一个月今天终于解决了!!撒花~

下图里base64_data是经过转换的,类型是str

f = open(origin_path, 'rb')
base64_data = base64.b64encode(f.read()).decode('utf-8')

name就是图片的名称,这个图是之前的写法。

以上这种方式对于1M左右的小图可以正常操作,但稍大一些的图就会花费很长很长时间,期间试过设置Tomcat的mastPostSize,Mysql的my.ini里也修改过一些size参数,重启电脑之后没什么用。

查找过程中发现了Poster,但是这个Poster好像对于Python3的支持不是很好,里面有很多东西都是Python2的,所以继续找其它方法,之后发现一个上传大文件时需要的Multipart/form-data参数,但是在上图的headers中加上

'Content-Type': 'multipart/form-data'

也不好使,后台返回对象定义未找到。再继续查找,最终发现了MutipartEncoder

首先导入这个模块,我在Pycharm里搜索不到requests_toolbelt,直接在cmd里pipi install requests_toolbelt,不用指定路径,会自动安装到python安装路径下.参考网上的使用方式,我写出了以下代码内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值