如何在不使用 lib imghdr 的情况下提取 base64 扩展

How to extract base64 extension without using lib imghdr

我有一个视图非常适合接收 base64 图像。我的问题是在极少数情况下它无法识别发送的 jpg 图像。看起来像 None.

上网查了一下,发现是lib imghdr的问题。我尝试使用 OS lib 来提取扩展,甚至使用 lib pillow,但我不能。

有人有什么建议吗?

这是我如何使用 imghdr 的示例:

    def get_file_extension(self, file_name, decoded_file):
        import imghdr

        extension = imghdr.what(file_name, decoded_file)
        if extension == "jpeg":
            extension = "jpg"

        return extension

您可以编写一个简单的实用函数来提取扩展

def base64_ext(b64str):
    # b64str format example: 'data:image/jpeg;base64, LzlqLzRBQ...'
    fmt, imgstr = b64str.split(';base64,') 
    <b>ext = fmt.split('/')[-1]</b>
    return ext