PDF 附件下载器无法使用 base64 编码

问题描述 投票:0回答:2

我有一个程序可以将文件附件拉入网络共享。我在单部分和多部分电子邮件中都可以使用此功能。

我最近收到了一个多部件,显示为:

Content-Type: application/pdf
Content-Disposition: attachment; filename="=?utf-8?B?SW52b2ljZShzKS5wZGY=?="
Content-Transfer-Encoding: base64

由于文件名原因,文件写入失败。

这是我编写 PDF 的代码:

fp = open(os.path.join(path, filename), 'wb')
 fp.write(part.get_payload(decode=True))
 fp.close()

但是我认为该部分工作正常,但文件写入失败...我不知道如何将该文件名转换为可读文本。 这是我用来确定文件名的代码:

filename = part.get_filename()
 filename_zero, fileext =os.path.splitext(filename)
filename = str(var_seq) + "_" + filename_zero + fileext

非常感谢您对我所缺少的内容的任何见解。

python python-2.7 pdf base64 imaplib
2个回答
1
投票

email.header.decode_header() 正是我所需要的。非常感谢!

添加了以下几行:

filename = part.get_filename()
 if decode_header(filename)[0][1] is not None:
     filename = str(decode_header(filename)[0][0]).decode(decode_header(filename)[0][1])
filename_zero, fileext = os.path.splitext(filename)
filename = str(var_seq) + "_" + filename_zero  + fileext


0
投票

--544e5bbf30c6bb3f3eb1ebef4b6b8ce736da91e582e9bff3c054ce049943 内容处置:附件;文件名=“ingresso.pdf” 内容传输编码:base64 内容类型:应用程序/pdf;名称=“ingresso.pdf”

© www.soinside.com 2019 - 2024. All rights reserved.