将base64字符串从客户端传递到服务器是否可以使用?

时间:2015-12-29 20:19:53

标签: c# image

将base64字符串从客户端传递到服务器是否可以保存?

客户端保存我有创建BASE64字符串的代码...
数据:图像/ PNG; BASE64,iVBORw0KGgoAAAANSUh .....等....

然而,当我尝试转换此服务器端时,我收到错误,输入不是有效的Base-64字符串。

在我的C#代码中,我有:

// Data Type
public List<object[][]> MyData;


var imgStr = MyData[0][0].ToString();
var bytes = Convert.FromBase64String(imgStr); // Get error here

是否有更好的方法从客户端幻灯片中获取图像并将其传递给服务器端使用?

3 个答案:

答案 0 :(得分:4)

您需要从字符串中删除data:image/png;base64,。这是元数据。实际的base64编码字节以逗号开头。

答案 1 :(得分:1)

在@benstopics响应之后,通过分割逗号然后取第二部分来剥离元数据可能更容易,例如。

String base64 = "data:image/png;base64,iVBORw0KGgoAAAANSUh.....";
base64 = base64.split(',')[1];

答案 2 :(得分:0)

Base64由字符A-Za-z0-9+/组成,不考虑{ {1}}必须放在最后的字符(关于Base64 *编码最复杂的部分),

正如您在数据字符串中看到的那样,=前缀只是metadata,并且不是任何有效的Base64编码字符串的一部分。这是一种可以从字符串中删除它的方法:

data:image/png;base64,

如果您希望它适用于任何图像类型,则需要使用正则表达式。