Post 为什么base64字符串作为参数发送,在服务器端解码后改变长度?

Post 为什么base64字符串作为参数发送,在服务器端解码后改变长度?,post,flask,base64,decode,encode,Post,Flask,Base64,Decode,Encode,在客户端,我正在读取一个图像文件并用base64编码,将其作为URL参数发送到 img = open("file.png", "rb").read() print len(img) img = img.encode("base64") print len(img) print len(img.decode("base64")) 打印252235,340742和252235 在服务器端,对接收到的str进行解码无法产生相同的结果。我将编码的base64发布为“” 打印非常精细的340742,以及

在客户端,我正在读取一个图像文件并用base64编码,将其作为URL参数发送到

img = open("file.png", "rb").read()
print len(img)
img = img.encode("base64")
print len(img)
print len(img.decode("base64"))
打印
252235
340742
252235

在服务器端,对接收到的str进行解码无法产生相同的结果。我将编码的base64发布为“”


打印非常精细的
340742
,以及实际应为原始长度的
248176
。在post请求期间是否修改图像参数?如何在请求或任何其他解决方案中不使用files param来执行此操作。

因此,我找到了答案

将编码字符串作为URL参数发送时,字符串中的“+”正在转换为“”。因此,在解码之前必须
encoded_base64.替换(“,“+”)
。成功了

img = flask.request.args["image"]
print len(img)
img = img.decode("base64")
print len(img)