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;