C# Base64格式图片上传

         /// <summary>
         /// 上传图片
         /// </summary>
         /// <param name="dataURL">base64图片编码</param>
         /// <returns></returns>
         [HttpPost]
         public string Image(parameter parameter)
         {
             #region
             //string filename = "";//声明一个string类型的相对路径
             //String base64 = parameter.dataURL.Substring(parameter.dataURL.IndexOf(",") + 1);      //将‘,’以前的多余字符串删除
             ////System.Drawing.Bitmap bitmap = null;//定义一个Bitmap对象,接收转换完成的图片
             //try//会有异常抛出,try,catch一下
             //{
             //    String inputStr = base64;//把纯净的Base64资源扔给inpuStr,这一步有点多余
             //    byte[] arr = Convert.FromBase64String(inputStr);//将纯净资源Base64转换成等效的8位无符号整形数组
             //    System.IO.MemoryStream ms = new System.IO.MemoryStream(arr);//转换成无法调整大小的MemoryStream对象
             //    System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(ms);//将MemoryStream对象转换成Bitmap对象               
             //    //bitmap = bmp;
             //    string getPath = System.Web.HttpContext.Current.Server.MapPath("~/Res/FaceImages/");
             //    if (!Directory.Exists(getPath))
             //        Directory.CreateDirectory(getPath);
             //    Random random = new Random();
             //    int n = random.Next(10000, 100000);
             //    //文件名称     我用的时间+名称处理  一般会增加一个随机数
             //    filename = "/Res/FaceImages/" + DateTime.Now.Year + DateTime.Now.Month + DateTime.Now.Day + DateTime.Now.Hour + DateTime.Now.Minute + DateTime.Now.Millisecond + n.ToString() + ".png";//所要保存的相对路径及名字
             //    string tmpRootDir = System.Web.HttpContext.Current.Server.MapPath(System.Web.HttpContext.Current.Request.ApplicationPath.ToString()); //获取程序根目录 
             //    string imagesurl2 = tmpRootDir + filename.Replace(@"/", @""); //转换成绝对路径 
             //    bmp.Save(imagesurl2, System.Drawing.Imaging.ImageFormat.Png);//保存到服务器路径
             //    ms.Close();//关闭当前流,并释放所有与之关联的资源
             //}
             //catch (Exception)
             //{
             //}
             //return filename;//返回相对路径
             #endregion
 
             string filename = "";//声明一个string类型的相对路径
             String base64 = parameter.dataURL.Substring(parameter.dataURL.IndexOf(",") + 1);      //将‘,’以前的多余字符串删除
 
             try//会有异常抛出,try,catch一下
             {
                 String inputStr = base64;//把纯净的Base64资源扔给inpuStr,这一步有点多余
                 byte[] arr = Convert.FromBase64String(inputStr);//将纯净资源Base64转换成等效的8位无符号整形数组
                 using (MemoryStream memory = new MemoryStream(arr))
                 {
                     using (System.Drawing.Image image = System.Drawing.Image.FromStream(memory))
                     {
                         using (System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(image, image.Width, image.Height))//将MemoryStream对象转换成Bitmap对象               
                         {
                             //缩放图片
                             Bitmap bitmap = ZoomImage(bmp, 480, 480);
                             //去掉图片白边
                             Bitmap bit = CutImageWhitePart(bitmap);
 
                             string getPath = System.Web.HttpContext.Current.Server.MapPath("~/Res/FaceImages/");
                             if (!Directory.Exists(getPath))
                                 Directory.CreateDirectory(getPath);
                             Random random = new Random();
                             int n = random.Next(10000, 100000);
                             //文件名称     我用的时间+名称处理  一般会增加一个随机数
                             filename = "/Res/FaceImages/" + DateTime.Now.Year + DateTime.Now.Month + DateTime.Now.Day + DateTime.Now.Hour + DateTime.Now.Minute + DateTime.Now.Millisecond + n.ToString() + ".png";//所要保存的相对路径及名字
                             string tmpRootDir = System.Web.HttpContext.Current.Server.MapPath(System.Web.HttpContext.Current.Request.ApplicationPath.ToString()); //获取程序根目录 
                             string imagesurl2 = tmpRootDir + filename.Replace(@"/", @""); //转换成绝对路径 
                             bit.Save(imagesurl2, System.Drawing.Imaging.ImageFormat.Png);//保存到服务器路径
                             bmp.Dispose();
                             bitmap.Dispose();
                             bit.Dispose();
                             image.Dispose();
                             memory.Close();//关闭当前流,并释放所有与之关联的资源
                         }
                     }
                 }
             }
             catch (Exception)
             {
             }
             return ConfigurationManager.ConnectionStrings["imgUrl"].ToString() + filename;//返回相对路径
View Code
原文地址:https://www.cnblogs.com/s666/p/13581223.html