/// <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;//返回相对路径