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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM