1. 程式人生 > 實用技巧 >Base64格式圖片上傳

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 }