我想从 base64 数据 URI 中删除 base64 标头,例如:data:video/mp4;base64,TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz我想删除前缀:data:video/mp4;base64,问题是我收到了不同类型的视频,所以我不知道如何以任何形式可靠地删除这个标题。有人可以帮忙吗?
1 回答
慕沐林林
TA贡献2016条经验 获得超9个赞
在逗号处剪切字符串以获取base64数据:
func decode(uri string) ([]byte, error) {
if !strings.HasPrefix(uri, "data:") {
return nil, errors.New("not a data uri")
}
_, data, ok := strings.Cut(uri, ",")
if !ok {
return nil, errors.New("not a data uri")
}
return base64.URLEncoding.DecodeString(data)
}
Go 1.18 中添加了strings.Cut函数。在早期版本的 Go 中使用strings.Index来切断逗号:
func decode(uri string) ([]byte, error) {
if !strings.HasPrefix(uri, "data:") {
return nil, errors.New("not a data uri")
}
i := strings.Index(uri, ",")
if i < 0 {
return nil, errors.New("not a data uri")
}
return base64.URLEncoding.DecodeString(uri[i+1:])
}
- 1 回答
- 0 关注
- 142 浏览
添加回答
举报
0/150
提交
取消