Base64格式图片上传

 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         }

 

上一篇:16数组


下一篇:面向对象