Egret头像用base64编码保存至数据库

客户端:
var base64Str = this.mImgHead.texture.toDataURL(“image/png”);
将头像转换成base64字符串,
HttpMng.getInt().saveHead(function(){},base64Str);
请求发送至服务器

服务端:
1 ,保存:
public void UploadFace(HttpContext context){
string file = GameRequest.GetFormString(“file”);
string replStr = file.Replace(“data:image/png;base64,”,"");
注意:必须去除前缀否则转换会无法识别编码
replStr = replStr.Replace(" “,”+");
注意:数据传输的时候+字符被自动转换成了+,所有拿到数据都转换回来。
byte[] bt = Convert.FromBase64String(replStr);
转成二进制编码
accountsFace.ID = userID;
accountsFace.CustomFace = bt;
msg = FacadeManage.aideAccountsFacade.InsertCustomFace(accountsFace);
写入至数据库。
}

2,请求头像
public void ProcessRequest( HttpContext context ){
AccountsFace faceModel = FacadeManage.aideAccountsFacade.GetAccountsFace( ID );
string file = Convert.ToBase64String(faceModel.Face);
从数据库获取二进制编码,并转成base64字符串
AjaxJsonValid ajv = new AjaxJsonValid();
file = “data:image/png;base64,”+file;
将前缀加回
ajv.AddDataItem(“list”, file);
ajv.code = 1;
ajv.SetValidDataValue(true);
context.Response.Write(ajv.SerializeToJson());
}

最后客户端,拿到数据后,也需要将空格转换成+。
PS:经过各位大佬的提醒,base64编码字符串是可以直接复制到浏览器打开,如果能显示图片则为正常。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值