• 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
  • 相关阅读:
    python中以带mixin命名的类有什么特点?
    php使用redis做缓存和使用redis保存session
    python连接hive数据库count查询慢的解决办法
    内网环境数据库查看工具使用笔记支持hive edismysql
    深入mysql的视图复习笔记
    Laravel 整合IOS苹果授权登录(JWT验证模式)
    PHP 读取PDF文件内容之PdfParser
    git发生冲突:error: Your local changes to the following files would be overwritten by merge
    PHP 创建GUID唯一标识
    Laravel 模型关联、关联查询、预加载使用实例
  • 原文地址:https://www.cnblogs.com/s666/p/13581223.html
Copyright © 2020-2023  润新知