上下文:-我正在尝试通过imgBase64 encoded
将图像(post call
)发送到本地python服务器(实现do_POST()
方法)。我已成功收到Post end
上的编码字节,但是由于填充错误,我无法在其上重新生成图像文件。
这是回溯:
Traceback (most recent call last):
File "C:\Python35\Lib\socketserver.py", line 313, in _handle_request_noblock
self.process_request(request, client_address)
File "C:\Python35\Lib\socketserver.py", line 341, in process_request
self.finish_request(request, client_address)
File "C:\Python35\Lib\socketserver.py", line 354, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "C:\Python35\Lib\socketserver.py", line 681, in __init__
self.handle()
File "C:\Python35\Lib\http\server.py", line 422, in handle
self.handle_one_request()
File "C:\Python35\Lib\http\server.py", line 410, in handle_one_request
method()
File "C:/Code/Classifier/LocalServer.py", line 27, in do_POST
f.write(base64.b64decode(str))
File "C:\Code\Classifier\AdClassifier\lib\base64.py", line 88, in b64decode
return binascii.a2b_base64(s)
binascii.Error: Incorrect padding
这是我用来纠正填充的逻辑,但是仍然显示Incorrect padding
错误:
def correct_pad(byte_str):
i=len(byte_str)
print("length is "+str(i))
if(i%4==0):
return byte_str
elif(i%4==1):
print ('after 3 pads '+ str(len(byte_str+b'===')))
return byte_str+b'==='
elif(i%4==2):
print('after 2 pads ' + str(len(byte_str + b'==')))
return byte_str+b'=='
else:
print('after 1 pads ' + str(len(byte_str + b'=')))
return byte_str+b'='
感谢您以任何可能的方式提供的帮助。如果上下文不清楚,请告诉我。
P.S。 :-我正在做一个家庭项目,只是从python开始。