1 [HttpPost] 2 public string decodeBase64ToImage(string dataURL) 3 { 4 string filename = "";//声明一个string类型的相对路径 5 String base64 = dataURL.Substring(dataURL.IndexOf(",") + 1); //将‘,’以前的多余字符串删除 6 System.Drawing.Bitmap bitmap = null;//定义一个Bitmap对象,接收转换完成的图片 7 try//会有异常抛出,try,catch一下 8 { 9 String inputStr = base64;//把纯净的Base64资源扔给inpuStr,这一步有点多余 10 byte[] arr = Convert.FromBase64String(inputStr);//将纯净资源Base64转换成等效的8位无符号整形数组 11 System.IO.MemoryStream ms = new System.IO.MemoryStream(arr);//转换成无法调整大小的MemoryStream对象 12 System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(ms);//将MemoryStream对象转换成Bitmap对象 13 bitmap = bmp; 14 string getPath = System.Web.HttpContext.Current.Server.MapPath("~/Res/FaceImages/"); 15 if (!Directory.Exists(getPath)) 16 Directory.CreateDirectory(getPath); 17 Random random = new Random(); 18 int n = random.Next(10000, 100000); 19 //文件名称 我用的时间+随机数处理 20 filename = "/Res/FaceImages/" + DateTime.Now.Millisecond + n.ToString()+ ".png";//所要保存的相对路径及名字 21 string tmpRootDir = System.Web.HttpContext.Current.Server.MapPath(System.Web.HttpContext.Current.Request.ApplicationPath.ToString()); //获取程序根目录 22 string imagesurl2 = tmpRootDir + filename.Replace(@"/", @"\"); //转换成绝对路径 23 bitmap.Save(imagesurl2, System.Drawing.Imaging.ImageFormat.Png);//保存到服务器路径 24 ms.Close();//关闭当前流,并释放所有与之关联的资源 25 } 26 catch (Exception) 27 { 28 } 29 return filename;//返回相对路径 30 }