保存BASE64编码图片

1.前端上传用户图片时,一些K数较小图片,头像图标等 .以bass64编码后的字符串传到服务器.

2.服务器接收并保留到本地.

// 页面上点击保存

$.post('/imgupload/save',{base64:"data:image/jpeg;base64,编码略...."},function(data){

  console.info(data);

})

 

/*WEB API收到数据*/

string imgbase64str=Request.Form.Get("base64");

// 检查一下

System.Text.RegularExpressions.Match m = System.Text.RegularExpressions.Regex.Match

                       (imgbase64str, "^data:image/(?<imgfmt>jpeg|png|gif);base64,");

// 不成功不处理
if (!m.Success)
return false;

// 取得格式(jpeg/png/gif)

string imgfmt = m.Groups["imgfmt"].Value;

// 前缀要去掉
base64str = base64str.Replace(m.Groups[0].Value, "");

// 用Convert类的方法转成字节
byte[] imgbytes = Convert.FromBase64String(base64str);

// 生成文件名,再存到文件

string filename=String.Format("{0}.{1}",DateTime.Now.ToString("yyyyMMddHHmmss")+DateTime.Now.Millisecond.ToString(),imgfmt );

string fullname="本地路径"+filename;

FileStream fs = new FileStream(fullname, FileMode.Create);
fs.Write(imgbytes, 0, imgbytes.Length);
fs.Close();

// 返回一个地址

http://路径/filename;

posted @ 2016-10-27 10:54  mirrorspace  阅读(1279)  评论(0编辑  收藏  举报