的价值
FILE_CONTENT
是base64编码的。这意味着它是一个由64个可能的字符组成的字符串,这些字符表示原始字节。您只需要对字符串进行base64解码,并将结果字节直接写入文件。
import base64
content_str = "H4sIAAAAAAAAAOy8VXQcy7Ku22JmZmZmspiZGS2WLGa0xc=="
with open(os.path.expanduser('test.pdf'), 'wb') as fp:
fp.write(base64.b64decode(content_str))
Base64序列
"H4sI"
在内容字符串的开头转换为字节
0x1f
我是说,
0x8b
我是说,
0x08
.这些字节通常不在pdf文件的开头,而是表示gzip压缩数据流。有可能pdf阅读器无法理解这一点。
我不确定gzip压缩是否是pdf文件格式的有效部分,但它是web通信的有效部分,所以可能文件流是为了传输/下载而压缩的,在将其写入数据库之前没有解压缩。
如果PDF阅读器不接受数据,请在将其保存到文件之前将其解压缩:
import gzip
# ...
with open(os.path.expanduser('test.pdf'), 'wb') as fp:
fp.write(gzip.decompress(base64.b64decode(content_str)))