如何从Base64编码的文件中知道文件的MIME类型? [英] How to know MIME-type of a file from base64 encoded data in python?
本文介绍了如何从Base64编码的文件中知道文件的MIME类型?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个文件的Base64编码字符串。
encoded_data = '/9j/4AAQSkZJRgABAQEASABIAAD//gA7Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcgSlBFRyB2NjIpLCBxdWFsaXR5ID0gOTUK/9sAQwAGBAUGBQQGBgUGBwcGCAoQCgoJCQoUDg8MEBcUGBgXFB...'
我如何才能从该字符串中知道文件的MIME类型?
推荐答案
一般情况下,无法可靠地标识未标记数据的MIME类型。
许多文件格式都有魔术标记,可用于以合理的精度确定文件类型,但有些魔术标记选择不当,可能与无关文件中的文本重合;当然,完全随机的位序列不是任何明确定义的文件格式。
libmagic
是通常用于执行此任务的file
命令的中心组件。有几种Python绑定,但https://pypi.org/project/python-libmagic/似乎是最流行和最活跃的。
import base64
import magic
encoded_data = '/9j/4AAQSkZJRgABAQEASABIAAD//gA7Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcgSlBFRyB2NjIpLCBxdWFsaXR5ID0gOTUK/9sAQwAGBAUGBQQGBgUGBwcGCAoQCgoJCQoUDg8MEBcUGBgXFB==='
with magic.Magic() as m:
print(m.from_buffer(base64.b64decode(encoded_data)))
输出:
image/jpeg
(请注意,我必须修复encoded_data
末尾的填充。)
这篇关于如何从Base64编码的文件中知道文件的MIME类型?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文