如何在不使用 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
我有一个视图非常适合接收 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