填充imgBase64编码的rfile

时间:2018-07-08 18:21:48

标签: python base64 http-post python-3.5 backend

上下文:-我正在尝试通过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开始。

0 个答案:

没有答案