This commit is contained in:
yumoqing 2025-09-04 17:21:26 +08:00
parent f7cc6fe06c
commit 792ed8bc62

View File

@ -4,41 +4,41 @@ import base64
from appPuyblic.uniqueID import getID from appPuyblic.uniqueID import getID
MIME_EXT = { MIME_EXT = {
# 图片 # 图片
"image/jpeg": "jpg", "image/jpeg": "jpg",
"image/png": "png", "image/png": "png",
"image/gif": "gif", "image/gif": "gif",
"image/webp": "webp", "image/webp": "webp",
"image/bmp": "bmp", "image/bmp": "bmp",
"image/svg+xml": "svg", "image/svg+xml": "svg",
"image/x-icon": "ico", "image/x-icon": "ico",
"image/tiff": "tiff", "image/tiff": "tiff",
# 音频 # 音频
"audio/mpeg": "mp3", "audio/mpeg": "mp3",
"audio/wav": "wav", "audio/wav": "wav",
"audio/ogg": "ogg", "audio/ogg": "ogg",
"audio/webm": "weba", "audio/webm": "weba",
"audio/aac": "aac", "audio/aac": "aac",
"audio/flac": "flac", "audio/flac": "flac",
"audio/mp4": "m4a", "audio/mp4": "m4a",
"audio/3gpp": "3gp", "audio/3gpp": "3gp",
# 视频 # 视频
"video/mp4": "mp4", "video/mp4": "mp4",
"video/webm": "webm", "video/webm": "webm",
"video/ogg": "ogv", "video/ogg": "ogv",
"video/x-msvideo": "avi", "video/x-msvideo": "avi",
"video/quicktime": "mov", "video/quicktime": "mov",
"video/x-matroska": "mkv", "video/x-matroska": "mkv",
"video/3gpp": "3gp", "video/3gpp": "3gp",
"video/x-flv": "flv", "video/x-flv": "flv",
} }
def getFilenameFromBase64(base64String): def getFilenameFromBase64(base64String):
match = re.match(r"data:(.*?);base64,(.*)", base64String) match = re.match(r"data:(.*?);base64,(.*)", base64String)
if not match: if not match:
raise ValueError("不是合法的 base64 Data URL") raise ValueError("不是合法的 base64 Data URL")
mime_type, b64_data = match.groups() mime_type, b64_data = match.groups()
ext = MIME_EXT.get(mime_type, mime_type.split("/")[-1]) ext = MIME_EXT.get(mime_type, mime_type.split("/")[-1])
name = getID() name = getID()