gpt4 book ai didi

javascript - 解析来自 javascript 前端的 base64 字符串(data-uri,rfc 2397)

转载 作者:行者123 更新时间:2023-11-28 08:40:41 29 4
gpt4 key购买 nike

我的 javascript 前端正在发送 base64 编码的字符串:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAM8AAADkCAIAAACwiOf9AAAAA3NCSVQICAjb4U/gAAAgAElEQVR4nO...`

我只需要获取base64数据,这意味着iVBORw0KGgoAAAANSUhEUgAAAM8AAADkCAIAAAACwiOf9AAAAA3NCSVQICAjb4U/gAAAgAElEQVR4nO...。基本上需要删除 data:image/png;base64, 。是否有一些标准的 python 库可以用来执行此操作,或者我必须滚动自己的正则表达式?

base64库只提供对编码/解码的支持,这不是我需要的:我想保留 base64 编码数据,只是没有前缀。

最佳答案

为了供其他人引用,我为此准备了一个小型库:

_compiled  = False
_compiled1 = None
_compiled2 = None
def compile_it():
global _compiled, _compiled1, _compiled2
if not _compiled:
regex1 = r'^data:(?P<mediatype>[^\;]*);base64,(?P<data>.*)'
regex2 = r'^data:(?P<mediatype>[^\;]*),(?P<data>.*)'
_compiled = True
_compiled1 = re.compile(regex1)
_compiled2 = re.compile(regex2)

def clean_data_uri(data_in):
# Clean base64 data coming from the frontend
# data:image/png;base64,iVBORw0KGgoAAAA... -> iVBORw0KGgoAAAA...
# As specified in RFC 2397
# http://stackoverflow.com/q/20517429/647991
# http://en.wikipedia.org/wiki/Data_URI_scheme
# http://tools.ietf.org/html/rfc2397
# Format is : data:[<mediatype>][;base64],<data>
compile_it()
try:
m = _compiled1.match(data_in)
success = True
base64 = True
mediatype = m.group('mediatype')
data = m.group('data')
except:
try:
m = _compiled2.match(data_in)
success = True
base64 = False
mediatype = m.group('mediatype')
data = m.group('data')
except Exception, e:
log.warning('clean_data_uri > Not possible to parse data_in > %s', e)
success = False
base64 = False
mediatype = None
data = None
if not success:
log.error('clean_data_uri > Problems splitting data')
return success, mediatype, base64, data

关于javascript - 解析来自 javascript 前端的 base64 字符串(data-uri,rfc 2397),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20517429/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com