1 #region 配合前端的多張圖片上傳 2 #region 上傳圖片方法 3 /// 4 /// 介面方法 5 /// 6 /// 帶 data:image/jpeg;base64,的base64的圖片 7 /// 圖片路徑 8 [HttpP... ...
1 #region 配合前端的多張圖片上傳 2 #region 上傳圖片方法 3 /// <summary> 4 /// 介面方法 5 /// </summary> 6 /// <param name="img">帶 data:image/jpeg;base64,的base64的圖片</param> 7 /// <returns>圖片路徑</returns> 8 [HttpPost] 9 public ActionResult GETaddimg2(String img) 10 { 11 if (img == null) 12 { 13 return Json("空"); 14 } 15 else 16 { 17 return Json(PDUploadImage(img), JsonRequestBehavior.AllowGet); 18 } 19 } 20 #endregion 21 #region 圖片轉化 22 /// <summary> 23 /// base64 的字元串 24 /// </summary> 25 /// <param name="img"></param> 26 /// <returns>圖片轉成32的名字</returns> 27 public JsonResult PDUploadImage(string img) 28 { 29 string error = ""; 30 return Json(SaveImage("/Upload/Article", img, ref error), JsonRequestBehavior.AllowGet); 31 } 32 #endregion 33 #region 截取data:image/jpeg;base64,提取圖片,並保存圖片 34 /// <summary> 35 /// 截取data:image/jpeg;base64,提取圖片,並保存圖片 36 /// </summary> 37 /// <param name="file_name"></param> 38 /// <param name="img_string">base64的字元串</param> 39 /// <param name="error">錯誤的圖片格式</param> 40 /// <returns>路徑 + 圖片的名稱</returns> 41 private string SaveImage(string file_name, string img_string, ref string error) 42 { 43 //try 44 //{ 45 string[] img_array = img_string.Split(','); 46 byte[] arr = Convert.FromBase64String(img_array[1]); 47 using (MemoryStream ms = new MemoryStream(arr)) 48 { 49 Bitmap bmp = new Bitmap(ms); 50 if (img_array[0].ToLower() == "data:image/jpeg;base64") 51 { 52 bmp.Save(file_name + ".jpg"); 53 return SetImg(Guid.NewGuid().ToString().Replace('-', 'p').Substring(4), "jpg", arr); 54 } 55 else if (img_array[0].ToLower() == "data:image/png;base64") 56 { 57 bmp.Save(file_name + ".png"); 58 return SetImg(Guid.NewGuid().ToString().Replace('-', 'p').Substring(4), "png", arr); 59 } 60 else if (img_array[0].ToLower() == "data:image/gif;base64") 61 { 62 bmp.Save(file_name + ".gif"); 63 return SetImg(Guid.NewGuid().ToString().Replace('-', 'p').Substring(4), "gif", arr); 64 } 65 else 66 { 67 error = "不支持該文件格式。"; 68 return "錯"; 69 } 70 } 71 //} 72 //catch (Exception ex) 73 //{ 74 // error = "生成圖片發生錯誤。" + ex.ToString(); 75 // return "錯"; 76 //} 77 } 78 #endregion 79 #region 保存圖片路徑及設置名稱 80 /// <summary> 81 /// 保存到文件路徑 82 /// </summary> 83 /// <param name="ImgName">保存的文件名稱</param> 84 /// <param name="suffix">尾碼名</param> 85 /// <param name="arr">base64</param> 86 /// <returns>圖片的路徑</returns> 87 public string SetImg(string ImgName, string suffix, byte[] arr) 88 { 89 string str3 = System.AppDomain.CurrentDomain.BaseDirectory;//找到相對路徑 90 string str4 = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;//找到相對路徑 91 System.IO.File.WriteAllBytes(str3 + "/Upload/Article/" + ImgName + "." + suffix + "", arr); 92 return "/Upload/Article/" + ImgName + "." + suffix + ""; 93 } 94 #endregion 95 #endregion