How To Know Mime-type Of A File From Base64 Encoded Data In Python?
Solution 1:
In the general case, there is no way to reliably identify the MIME type of a piece of untagged data.
Many file formats have magic markers which can be used to determine the type of the file with reasonable accuracy, but some magic markers are poorly chosen and might e.g. coincide with text in unrelated files; and of course, a completely random sequence of bits is not in any well-defined file format.
libmagic
is the central component of the file
command which is commonly used to perform this task. There are several Python bindings but https://pypi.org/project/python-libmagic/ seems to be the most popular and active.
Of course, base64 is just a way to encode untyped binary data. Here's a quick demo with your sample data.
import base64
import magic
encoded_data = '/9j/4AAQSkZJRgABAQEASABIAAD//gA7Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcgSlBFRyB2NjIpLCBxdWFsaXR5ID0gOTUK/9sAQwAGBAUGBQQGBgUGBwcGCAoQCgoJCQoUDg8MEBcUGBgXFB==='with magic.Magic() as m:
print(m.from_buffer(base64.b64decode(encoded_data)))
Output:
image/jpeg
(Notice I had to fix the padding at the end of your encoded_data
.)
Post a Comment for "How To Know Mime-type Of A File From Base64 Encoded Data In Python?"