如何使用 Go 从数据 URI 中删除 base64 标头?

我想从 base64 数据 URI 中删除 base64 标头,例如:

data:video/mp4;base64,TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz

我想删除前缀:

data:video/mp4;base64,

问题是我收到了不同类型的视频,所以我不知道如何以任何形式可靠地删除这个标题。有人可以帮忙吗?


暮色呼如
浏览 143回答 1
1回答

慕沐林林

在逗号处剪切字符串以获取base64数据:func decode(uri string) ([]byte, error) {&nbsp; if !strings.HasPrefix(uri, "data:") {&nbsp; &nbsp; return nil, errors.New("not a data uri")&nbsp; }&nbsp; _, data, ok := strings.Cut(uri, ",")&nbsp; if !ok {&nbsp; &nbsp; return nil, errors.New("not a data uri")&nbsp; }&nbsp; return base64.URLEncoding.DecodeString(data)}Go 1.18 中添加了strings.Cut函数。在早期版本的 Go 中使用strings.Index来切断逗号:func decode(uri string) ([]byte, error) {&nbsp; &nbsp; if !strings.HasPrefix(uri, "data:") {&nbsp; &nbsp; &nbsp; &nbsp; return nil, errors.New("not a data uri")&nbsp; &nbsp; }&nbsp; &nbsp; i := strings.Index(uri, ",")&nbsp; &nbsp; if i < 0 {&nbsp; &nbsp; &nbsp; &nbsp; return nil, errors.New("not a data uri")&nbsp; &nbsp; }&nbsp; &nbsp; return base64.URLEncoding.DecodeString(uri[i+1:])}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go