111,094
社区成员




/// <summary>
/// 将前端传来的dataurl转成图片并返回文件地址
/// </summary>
/// <param name="dataUrl"></param>
/// <returns></returns>
public string SaveImageDataUrlToFileAndReturnFilePath(string dataUrl)
{
string fileinfo = StringCutCharBefore(dataUrl,';');
string fileExtend = StringCutCharAfter(fileinfo, '/');
if (!Directory.Exists(HttpContext.Current.Server.MapPath("/upload/image")))
{
Directory.CreateDirectory(HttpContext.Current.Server.MapPath("/upload/image"));
}
//if (fileExtend == "jpeg") { fileExtend = "jpg"; }
string filename = HttpContext.Current.Server.MapPath(String.Format("/upload/image/{0}.{1}", Guid.NewGuid().ToString(), fileExtend));
byte[] arrb = Convert.FromBase64String(StringCutCharAfter(dataUrl,','));
MemoryStream stream = new MemoryStream(arrb);
StreamToFile(stream, filename);
return filename;
}
public string StringCutCharBefore(string str,char c)
{
var index = str.IndexOf(c);
return str.Substring(0, index);
}
public string StringCutCharAfter(string str, char c)
{
return str.Substring(str.IndexOf(c) + 1);
}
public void StreamToFile(Stream stream, string fileName)
{
// 把 Stream 转换成 byte[]
byte[] bytes = new byte[stream.Length];
stream.Read(bytes, 0, bytes.Length);
// 设置当前流的位置为流的开始
stream.Seek(0, SeekOrigin.Begin);
// 把 byte[] 写入文件
FileStream fs = new FileStream(fileName, FileMode.Create);
BinaryWriter bw = new BinaryWriter(fs);
bw.Write(bytes);
bw.Close();
fs.Close();
}