将Base64图片字符串转为字节数组时遇System.FormatException异常求助
问题原因及解决方法
你的错误在于直接将带数据URI前缀的字符串传入Convert.FromBase64String方法。原始字符串中的data:image/png;base64,是数据URI的标识部分,包含冒号、斜杠、逗号等非Base64合法字符,导致方法解析失败。
解决步骤
- 先剥离数据URI前缀,提取真正的Base64编码内容
- 再将纯Base64字符串转换为字节数组
示例代码
// 原始带前缀的Base64字符串 string base64string = "data:image/png;base64,iVBORw0KGgoA...."; // 截取逗号之后的纯Base64部分 string pureBase64 = base64string.Substring(base64string.IndexOf(',') + 1); // 转换为图片字节数组 byte[] imageBytes = Convert.FromBase64String(pureBase64);
补充说明
数据URI的格式固定为[媒体类型];base64,[Base64数据],所以通过逗号分割提取数据部分的方式,对所有图片类型(如jpg、gif等)的Base64字符串都适用。
内容的提问来源于stack exchange,提问作者Ivan Debono
相关产品推荐
相关产品推荐

