我正在尝试从 Dynamics CRM 获取电子邮件附件,并希望以其原始格式保存文件。 当我尝试从 CRM 电子邮件实体获取信息时,我得到一个 Base64 字符串作为附件的内容。我不知道它是 jpg、png、pdf、txt 还是任何其他文件格式,现在如何将其转换为原始文件格式。 我们可以从base64字符串本身识别文件的格式还是我们需要其他信息来知道文件类型??
我尝试通过邮递员从 CRM 获取“activitymimeattachments”实体,我得到了 base64 字符串。现在我想以原始文件格式保存该附件的所有内容。我怎样才能使用 ADF 或逻辑应用程序来做到这一点
JPG、PNG 和 PDF 文件始终以唯一签名(幻数)开头:
FF
D8
FF
(字符串 ÿØÿ
)89
50
4E
47
0D
0A
1A
0A
(字符串 ‰PNG♪◙→◙
)25
50
44
46
(字符串 %PDF
)在base64编码中,每3个字节的源数据表示为4个字符。这意味着解码 Base64 编码数据的前 4 个字符会得到源数据的前 3 个字节;解码 Base64 编码数据的前 8 个字符会得到源数据的前 6 个字节,依此类推。
简而言之,
/9j/
iVBORw0K
JVBE
这将是从 Base64 编码的字符串中识别文件格式的最快且最肮脏的方法,而无需对字符串进行解码。
这绝不是确保格式正确的可靠方法:普通 TXT 文件也可以以 %PDF 开头 😄
我怀疑当您从CRM获取信息时,您不仅可以获得附件的base64编码内容,还可以获得文件名!我建议您朝这个方向挖掘,而不是尝试从文件内容猜测文件的类型。