Как извлечь расширение base64 без использования библиотеки imghdr

#django #django-rest-framework #base64 #imghdr

#django #django-rest-framework #base64 #imghdr

Вопрос:

У меня есть представление, которое идеально подходит для получения изображений base64. Моя проблема в том, что в некоторых редких случаях он не распознает отправленное изображение в формате jpg. Похоже None .

Посмотрев в Интернете, я увидел, что проблема заключается в библиотеке 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
 

Ответ №1:

Вы можете написать простую служебную функцию для извлечения расширения

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