我尝试解码存储为BLOB的PDF并将其保存到扩展名为.pdf的文件中。 results [0] [1]具有从数据库查询中提取的BLOB数据。
blob_val=results[0][1]
if len(blob_val) % 4 != 0:
while len(blob_val) % 4 != 0:
blob_val = blob_val + b"="
decod_text = base64.b64decode(blob_val)
else:
decod_text = base64.b64decode(blob_val)
尽管我在最后添加了=来纠正填充错误,但它仍然显示不正确的填充错误。为什么即使我们用" ="?
更正它,它仍会显示此错误答案 0 :(得分:0)
每个base64 char编码6位。为此,总字节数应该可以被3整除,而不是4。
这应该有效(并且有点简化):
blob_val = results[0][1]
# If the length is divisible by 3, the 'while' will never
# be entered, so no point in doing the additional 'if' above.
while len(blob_val) % 3 != 0:
blob_val += b"="
decod_text = base64.b64decode(blob_val)