나는 이미지를 보낼 수있는 대화방에서 작업하고 있습니다. 그러나 이미지가 크기 때문에 부분적으로 보내고 각 부분을 문자열에 추가합니다. 내가 만들려고 할 때파이썬에서 문자열을 디코딩 할 때 base64 오류가 발생했습니다.
def getData(self):
chatArea = self.chatArea
imageBytes = ""
imageMode = False
while 1:
data = self.s.recv(8000)
if not data:
break
if imageMode == True:
imageBytes = imageBytes + data
if data[-1] == ")":
newImage = open("Untitled.png", "wb")
newImage.write(imageBytes.decode("base64"))
newImage.close()
imageMode = False
print("Done")
else:
if re.findall(r'\[(.*?)\]', data) == ["Image"]:
print("Got the data")
imageMode = True
else:
string = data + "\n\n"
chatArea.configure(state=NORMAL)
chatArea.insert(END, string)
chatArea.configure(state=DISABLED)
newString = string.split(":")[0]
self.chatArea.see(END)
if newString == self.myName or newString == "Server":
pass
else:
winsound.PlaySound("Notify.wav", winsound.SND_FILENAME)
왜 내가이 오류를 얻고있다 : 그리고 그 안에있는 정보를 가지고있는 문자열을 디코딩하려고 할 때이 오류가 발생합니다 :
여기return binascii.a2b_base64(s)
Error: Incorrect padding
내 코드입니다 영상? 어떻게 해결할 수 있습니까?
@howaboutNO 오류를 무시하려고 시도하지 않고 오류를 방지하는 방법을 찾으려고합니다. 그리고 왜 그것이 저에게 오류를주고 있습니다. –
해결책이있는 사람이 있습니까? –
인코딩 된 문자가 4의 배수가 아닌 경우 Base64를 사용하려면 패딩이 필요합니다. –