//一般處理程序 public void GetImageFromWeb() { //創建文件夾 //2016-10-14 dq string filePath = "~/ProductImage/"; string mapFilePath; mapFilePath = HttpContext.Current.Server.MapPath(filePath); if (!Directory.Exists(mapFilePath)) { Directory.CreateDirectory(mapFilePath); } filePath += userEntity.User_ID + "/"; mapFilePath = HttpContext.Current.Server.MapPath(filePath); if (!Directory.Exists(mapFilePath)) { Directory.CreateDirectory(mapFilePath); } //2016-10-14 注釋 dq //寫入數據庫的路徑 string imgUrl = "/ProductImage/" + userEntity.User_ID + "/"; // 圖片數據 HttpFileCollection files = System.Web.HttpContext.Current.Request.Files; string fileName = files[0].FileName; string name = System.IO.Path.GetFileName(fileName); Stream stream = files[0].InputStream; byte[] bytes = new byte[stream.Length]; stream.Read(bytes, 0, bytes.Length); // 設置當前流的位置為流的開始 stream.Seek(0, SeekOrigin.Begin); ResImgUpLoadData entity = WS.UploadImgs(bytes, mapFilePath, name, imgUrl, userEntity); BaseReturn(entity); }
//C#代碼 #region 圖片上傳 /// <summary> // 功能簡述:接口公開方法,圖片上傳 // 開發文檔:無 // 開發團隊:新產品組 // 設計:鄧 // 分析:鄧 // 代碼:鄧 // 開發時間:2016.3.10 // 代碼檢查: // 是否在使用:是 /// <summary> /// 上傳圖片 /// </summary> /// <param name="bytes">圖片信息</param> /// <param name="pFileName">文件夾名稱</param> /// <param name="pImgName">圖片名稱</param> /// <param name="pImgPath">寫入數據庫的圖片路徑</param> /// <param name="pUserInfo">操作人</param> /// <returns></returns> /// public ProductOnShelvesDML.ResImgUpLoadData UploadImgs(byte[] bytes, string pFileName, string pImgName, string pImgPath, UserDML.UserLoginInfo pUserInfo) { return pUploadImgs(bytes, pFileName,pImgName, pImgPath,pUserInfo); } private ProductOnShelvesDML.ResImgUpLoadData pUploadImgs(byte[] bytes,string pFileName,string pImgName, string pImgPath,UserDML.UserLoginInfo pUserInfo) { ProductOnShelvesDML.ResImgUpLoadData objResult=new ProductOnShelvesDML.ResImgUpLoadData(); //V_User_DB_Info objUserDBRes; //PublicCommonDML.ResComm objResComm; //Common objCommonDB; //objResult = new ProductOnShelvesDML.ResImgUpLoadData(); //objCommonDB = new Common(); Common objCommonDB = new Common(); PublicCommonDML.ResComm objResComm = new PublicCommonDML.ResComm(); ; try { string CommomString = "";//保存連接實體String // 驗證用戶信息,並獲得連接實體 // 代碼:鄧奇 // 開發時間:2016-10-17 SYSCEntityDBAddLogic objSYSCEntityDBAddLogic = new SYSCEntityDBAddLogic(); objResComm = objSYSCEntityDBAddLogic.GetUserDBString(pUserInfo.User_ID, pUserInfo.User_PWD); if (objResComm.ResState == PublicCommonDML.ResFlag.Success) { CommomString = objSYSCEntityDBAddLogic.ConectionSring; } else { objResult.ResComm = objResComm; return objResult; } //服務器端創建文件夾並保存在WS端 //string filePath = "myImg"; //string mapFilePath; //mapFilePath = HttpContext.Current.Server.MapPath(filePath); //if (!Directory.Exists(mapFilePath)) // Directory.CreateDirectory(mapFilePath); //filePath += pUserInfo.User_ID + "/"; //mapFilePath = HttpContext.Current.Server.MapPath(filePath); //if (!Directory.Exists(mapFilePath)) // Directory.CreateDirectory(mapFilePath); //filePath += pUserInfo.User_ID + "/"; //mapFilePath = HttpContext.Current.Server.MapPath(filePath); //if (!Directory.Exists(mapFilePath)) // Directory.CreateDirectory(mapFilePath); // 圖片數據 //Stream stream = new MemoryStream(bytes);//數據轉換 //MemoryStream ms = new MemoryStream(); //System.Drawing.Image img = System.Drawing.Image.FromStream(stream); //img.Save(pFileName + pImgName);//保存 //ms.Close(); //string path = mapFilePath + pImgName; //objResult.ResComm.ResState = PublicCommonDML.ResFlag.Success; //objResult.ResComm.ResMessage = path;//返回圖片路徑 //return objResult; ////pFileName-----不需從前端傳進,由配置文件設置 //string PhysicalAddress = System.Configuration.ConfigurationSettings.AppSettings["PhysicalAddress"];//存放圖片的物理位置以及名稱 //pFileName = @PhysicalAddress; //pFileName += pUserInfo.User_ID + "\\"; //if (!Directory.Exists(pFileName)) //{ // Directory.CreateDirectory(pFileName);//創建文件夾 //} //string IPAddress = System.Configuration.ConfigurationSettings.AppSettings["IPAddress"];//存放圖片的物理位置對應的項目IP //創建文件夾(在一般處理程序完成)並保存在WEB端 //限制圖片格式 bool Isimage = false; string suff = pImgName.Substring(pImgName.LastIndexOf('.'), pImgName.Length - pImgName.LastIndexOf('.')); //獲取文件后綴 string[] allowExtension = { ".jpg", ".jpeg", ".gif", ".bmp", ".png", ".JPG", ".JPEG", ".GIF", ".BMP", ".PNG" }; for (int i = 0; i < allowExtension.Length; i++) { if (suff == allowExtension[i]) { Isimage = true; break; } else { Isimage = false; } } if (!Isimage) { objResult.ResComm.ResState = PublicCommonDML.ResFlag.Fail; objResult.ResComm.ResMessage = "圖片格式不正確,上傳失敗"; return objResult; } // 圖片數據 Stream stream = new MemoryStream(bytes);//數據轉換 if (stream.Length > 1024000) //1M { objResult.ResComm.ResState = PublicCommonDML.ResFlag.Fail; objResult.ResComm.ResMessage = "圖片大小超過1M,上傳失敗"; return objResult; } else { MemoryStream ms = new MemoryStream(); System.Drawing.Image img = System.Drawing.Image.FromStream(stream); string imgName = DateTime.Now.ToString("yyyyMMddHHmmssffff") + suff; //圖片名稱 img.Save(pFileName + imgName);//保存 ms.Close(); string path = pFileName + imgName;//圖片全路徑 objResult.ResComm.ResState = PublicCommonDML.ResFlag.Success; objResult.img_url = pImgPath+imgName;//返回圖片相對路徑 objResult.ResComm.ResMessage = "上傳成功"; } return objResult; } catch (Exception ex) { string strMsg; string strErrMsg; strMsg = pUserInfo.User_ID + "\r\n" + pUserInfo.User_PWD + "\r\n" + ACCPCWS.MyCommons.Common.DMLToXML(pImgName.GetType(), pImgName); strErrMsg = LogLogic.WriteLog(ex, "E100008", strMsg); if (strErrMsg == "") { objResult.ResComm.ResState = PublicCommonDML.ResFlag.Error; objResult.ResComm.ResMessage = "系統服務器維護中,請稍后重試。"; } else { objResult.ResComm.ResState = PublicCommonDML.ResFlag.SysErrorMsg; objResult.ResComm.ResMessage = strErrMsg; } } return objResult; } #endregion