/// <summary> /// 剪裁图片 /// </summary> /// <param name="memberID">用户编号</param> /// <param name="x">剪裁区域X坐标</param> /// <param name="y">剪裁区域Y坐标</param> /// <param name="w">剪裁区域宽</param> /// <param name="h">剪裁区域高</param> /// <param name="uploadPhoto">图片名称</param> /// <param name="phototype">图片类型</param> /// <param name="skintype">用户皮肤类型</param> /// <param name="photoRelativePath">图片虚拟路径</param> /// <returns>操作状态</returns> private String CustomPicture( String memberID, String x, String y, String w, String h, String uploadPhoto, String phototype, String skintype, String photoRelativePath //, String contentId ) { CBB.ExceptionHelper.OperationResult result = null; Moooyo.BiZ.Photo.Photo myp = new BiZ.Photo.Photo(); ViewData["photoRelativePath"] = photoRelativePath != null ? photoRelativePath : ""; ViewData["phototype"] = phototype; ViewData["skinType"] = skintype; if (x != null && y != null && w != null && h != null && uploadPhoto != null && phototype != null) { int photType = Convert.ToInt32(phototype); int xCoord = int.Parse(x); int yCoord = int.Parse(y); int width = int.Parse(w); int height = int.Parse(h); //裁图并保存图片 String photoPath = CropImage(uploadPhoto, width, height, xCoord, yCoord, memberID); if (photoPath == "error") { //return new CBB.ExceptionHelper.OperationResult(false, "图片有误"); return ""; } //uploadPhoto = uploadPhoto.Replace("original", "modifiedsize"); String strPhotoPath = System.Web.Hosting.HostingEnvironment.MapPath(photoPath); //用文件流的方式打开该张图片 System.IO.FileStream tfs = System.IO.File.Open(strPhotoPath, System.IO.FileMode.Open, FileAccess.Read, FileShare.ReadWrite); String strRelativePath = "/temp_up_file/"; int strRelativePathLength = strRelativePath.Length; UpController upControl = new UpController(); //保存图片数据到数据库 myp = upControl.SavePhoto(memberID, Convert.ToInt32(phototype), tfs, photoPath.Substring(strRelativePathLength, photoPath.Length - strRelativePathLength)); //图片类型是用户头像类型 if (photType == 1) { BiZ.Member.ModifyPicturePath.ModifyPicturePathHandler modiPicPathHand = new BiZ.Member.ModifyPicturePath.ModifyPicturePathHandler(); modiPicPathHand.MemberId = memberID; modiPicPathHand.PictureId = myp.ID; modiPicPathHand.PicturePath = myp.FileName; modiPicPathHand.ModifyPicPathEvent += new BiZ.Member.ModifyPicturePath.ModifyPicturePathHandler.ModifyPicPathEventHandler( new BiZ.Member.ModifyPicturePath.ModifyPicturePathProvider().ModifyMemberAvatarPicPath ); //注册方法 modiPicPathHand.ModifyPicPath(); //自动调用注册过对象的方法 //同步发布说说 IList<BiZ.InterestCenter.Interest> interestList = BiZ.InterestCenter.InterestFactory.GetMemberInterest(memberID, 0, 0); String interestIds = ""; if (interestList != null) { foreach (BiZ.InterestCenter.Interest interest in interestList) { interestIds += interest.ID + ","; } } String userID = memberID, permissions = "0", interestids = interestIds, lat = "0", lng = "0", type = "修改个人头像"; BiZ.Content.MemberContent imageContent = null; if (userID != "" && permissions != "" && interestids != "" && lat != "" && lng != "" && type != "") { //创建兴趣操作内容对象 imageContent = new BiZ.Content.MemberContent(userID, ContentController.getContentPerMissions(permissions), interestids.Split(',').ToList(), Double.Parse(lat), Double.Parse(lng), type); //保存兴趣操作内容对象 imageContent = imageContent.Save(imageContent); //判断是否是新用户 Boolean ifnewmember = BiZ.MemberManager.MemberManager.getMemberToNew(userID) != null ? false : true; if (ifnewmember) { BiZ.Member.MemberToNew newmember = new BiZ.Member.MemberToNew(userID, imageContent.ID, BiZ.Member.MemberToNewType.ImageContent); newmember.Save(newmember); } } BiZ.Member.Member member = BiZ.MemberManager.MemberManager.GetMember(memberID); //增加动态 BiZ.Member.Activity.ActivityController.AddActivity( memberID, BiZ.Member.Activity.ActivityType.SetICON, BiZ.Member.Activity.ActivityController.GetActivityContent_SetICON_Title(), BiZ.Member.Activity.ActivityController.GetActivityContent_SetICON(member), true); //增加用户动态到后台 string operateUrl = ""; if (member.UniqueNumber != null) operateUrl = "/u/" + member.UniqueNumber.ConvertedID; else operateUrl = "/Content/TaContent/" + member.ID; BiZ.Sys.MemberActivity.MemberActivityProvider.CreateMemberActivity( member.ID, "", BiZ.Sys.MemberActivity.MemberActivityType.UploadAvatar, operateUrl); string filename = UploadPictureToTemporary(memberID, member.MemberInfomation.IconPath); Session["shareWeiBoImage"] = filename; ////上传头像分享到外部平台 //string bindedPlatforms = Models.DisplayObjProvider.MemberBindingPlatform(member.ID); //MicroConnController mcc = new MicroConnController(); //mcc.PlatformShareInfo( // member.ID, // bindedPlatforms, // member.MemberInfomation.NickName, // Server.MapPath(strPhotoPath.Replace("modifiedsize", "original")), // "/Content/ContentDetail/" + imageContent.ID // ); } ////图片类型内容图片 //if (photType >= 201 && photType <= 203 && contentId != null) //{ // List<BiZ.Content.Image> listImage = new List<BiZ.Content.Image>(); // BiZ.Content.Image image = new BiZ.Content.Image(myp.FileName); // listImage.Add(image); // BiZ.TopImagePush.ImagePush imagePush = new BiZ.TopImagePush.ImagePush(contentId, memberID, listImage, //} //构造源图片成FileInfo对象 System.IO.FileInfo fileOriginalPhoto = new System.IO.FileInfo(strPhotoPath.Replace("modifiedsize", "original")); tfs.Dispose(); tfs.Close(); System.GC.Collect(); //强制对所有代码进行即时垃圾回收*(不回收就会被iis进程占用文件) //如果文件已存在,则删除 if (fileOriginalPhoto.Exists) fileOriginalPhoto.Delete(); //删除单个文件(original) //{ // System.IO.File.Delete(strPhotoPath.Replace("modifiedsize", "original")); //} System.IO.File.Delete(strPhotoPath); //删除临时文件夹的剪裁后的图片(modifiedsize) //设置个性图片 if (photType == 11 || photType == 12) { if (skintype != null && skintype != "") { //设置个性图片 AddMemberSkinPicture(memberID, skintype, myp); } } } return myp.ID + "|" + myp.FileName; }
public Moooyo.BiZ.Photo.Photo SavePhoto(string memberID, int holderNo, Stream file, String filename) { Moooyo.BiZ.Photo.Photo myp = new BiZ.Photo.Photo(); if (file != null && file.Length > 0 && !string.IsNullOrEmpty(filename)) { string fname = filename; string ext = fname.Substring(fname.LastIndexOf('.') + 1); string month = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString(); string nFilename = month + "_" + CBB.Security.MD5Helper.getMd5Hash(fname + memberID + DateTime.Now.ToString()) + "." + ext; myp = Moooyo.BiZ.Photo.PhotoManager.AddPhoto(memberID, (BiZ.Photo.PhotoType)holderNo, ext, fname, ext, nFilename); myp.FileName = nFilename; CBB.ImageHelper.ImageWaterMark wm = new CBB.ImageHelper.ImageWaterMark(); //打文字水印 if (CBB.ConfigurationHelper.AppSettingHelper.GetConfig("WaterStrOn") == "true") { wm.WaterStrOn = true; wm.WaterStrMarginRight = CBB.ConfigurationHelper.AppSettingHelper.GetConfig("WaterStrMarginRight") == "" ? 5 : Int32.Parse(CBB.ConfigurationHelper.AppSettingHelper.GetConfig("WaterStrMarginRight")); wm.WaterStrMarginBottom = CBB.ConfigurationHelper.AppSettingHelper.GetConfig("WaterStrMarginBottom") == "" ? 5 : Int32.Parse(CBB.ConfigurationHelper.AppSettingHelper.GetConfig("WaterStrMarginBottom")); wm.WaterStrFontSize = CBB.ConfigurationHelper.AppSettingHelper.GetConfig("WaterStrFontSize"); wm.WaterStrFont = CBB.ConfigurationHelper.AppSettingHelper.GetConfig("WaterStrFont"); wm.WaterStr = CBB.ConfigurationHelper.AppSettingHelper.GetConfig("WaterStr"); } //打图片水印 if (CBB.ConfigurationHelper.AppSettingHelper.GetConfig("WaterPicOn") == "true") { wm.WaterPicOn = true; wm.WaterPicMarginRight = CBB.ConfigurationHelper.AppSettingHelper.GetConfig("WaterPicMarginRight") == "" ? 5 : Int32.Parse(CBB.ConfigurationHelper.AppSettingHelper.GetConfig("WaterPicMarginRight")); wm.WaterPicMarginBottom = CBB.ConfigurationHelper.AppSettingHelper.GetConfig("WaterPicMarginBottom") == "" ? 5 : Int32.Parse(CBB.ConfigurationHelper.AppSettingHelper.GetConfig("WaterPicMarginBottom")); wm.WaterPicPath = System.Web.Hosting.HostingEnvironment.MapPath(CBB.ConfigurationHelper.AppSettingHelper.GetConfig("WaterPicPath")); } CBB.ImageHelper.ImageSizeType[] imagetypes; BiZ.Photo.PhotoType photoType = (BiZ.Photo.PhotoType)holderNo; if (photoType == BiZ.Photo.PhotoType.ImageContentPhoto || photoType == BiZ.Photo.PhotoType.SuoSuoContentPhoto || photoType == BiZ.Photo.PhotoType.CallForContentPhoto || photoType == BiZ.Photo.PhotoType.MemberSkinPersonalityPicture || photoType == BiZ.Photo.PhotoType.InterestSelfhoodPicture) { imagetypes = SetImageSize(800, 800, wm); } else if (photoType == BiZ.Photo.PhotoType.MemberSkinPersonalityBackgroundPicture || photoType == BiZ.Photo.PhotoType.WebsiteHome) { imagetypes = SetImageSize(1600, 1600, wm); } else { imagetypes = SetImageSize(600, 600, wm); } CBB.ImageHelper.ImageUpload upload = new CBB.ImageHelper.ImageUpload(); upload.AddImageToGridFS(nFilename, file, imagetypes); } return myp; }
public ActionResult RegByPhotoStep1() { if (Request.Files == null || Request.Files.Count == 0) { //上传文件为空,返回 return Json(new int[] { -1 }); } BiZ.Member.Member mym = BiZ.MemberManager.MemberManager.AddMember("", "", "", 0); if (mym == null) return Json(new int[] { -1 }); BiZ.Photo.Photo myp = new BiZ.Photo.Photo(); if (Request.Files != null && Request.Files.Count > 0) { HttpPostedFileBase file = Request.Files[0]; if (file != null && file.ContentLength > 0 && !string.IsNullOrEmpty(file.FileName)) { string fname = file.FileName; string ext = fname.Substring(fname.LastIndexOf('.') + 1); string month = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString(); Random ran = new Random(file.ContentLength); string nFilename = month + "_" + CBB.Security.MD5Helper.getMd5Hash(fname + mym.ID + DateTime.Now.ToString()) + "." + ext; myp = Moooyo.BiZ.Photo.PhotoManager.AddPhotoOrgin(mym.ID, BiZ.Photo.PhotoType.RegisterPhoto, ext, fname, ext, nFilename); myp.FileName = nFilename; CBB.ImageHelper.ImageWaterMark wm = new CBB.ImageHelper.ImageWaterMark(); if (CBB.ConfigurationHelper.AppSettingHelper.GetConfig("WaterStrOn") == "true") { wm.WaterStrOn = true; wm.WaterStrMarginRight = CBB.ConfigurationHelper.AppSettingHelper.GetConfig("WaterStrMarginRight") == "" ? 5 : Int32.Parse(CBB.ConfigurationHelper.AppSettingHelper.GetConfig("WaterStrMarginRight")); wm.WaterStrMarginBottom = CBB.ConfigurationHelper.AppSettingHelper.GetConfig("WaterStrMarginBottom") == "" ? 5 : Int32.Parse(CBB.ConfigurationHelper.AppSettingHelper.GetConfig("WaterStrMarginBottom")); wm.WaterStrFontSize = CBB.ConfigurationHelper.AppSettingHelper.GetConfig("WaterStrFontSize"); wm.WaterStrFont = CBB.ConfigurationHelper.AppSettingHelper.GetConfig("WaterStrFont"); wm.WaterStr = CBB.ConfigurationHelper.AppSettingHelper.GetConfig("WaterStr"); } if (CBB.ConfigurationHelper.AppSettingHelper.GetConfig("WaterPicOn") == "true") { wm.WaterPicOn = true; wm.WaterPicMarginRight = CBB.ConfigurationHelper.AppSettingHelper.GetConfig("WaterPicMarginRight") == "" ? 5 : Int32.Parse(CBB.ConfigurationHelper.AppSettingHelper.GetConfig("WaterPicMarginRight")); wm.WaterPicMarginBottom = CBB.ConfigurationHelper.AppSettingHelper.GetConfig("WaterPicMarginBottom") == "" ? 5 : Int32.Parse(CBB.ConfigurationHelper.AppSettingHelper.GetConfig("WaterPicMarginBottom")); wm.WaterPicPath = Server.MapPath(CBB.ConfigurationHelper.AppSettingHelper.GetConfig("WaterStrFontSize")); } CBB.ImageHelper.ImageSizeType[] imagetypes = new CBB.ImageHelper.ImageSizeType[]{ new CBB.ImageHelper.ImageSizeType(600,600,false,false,"", CBB.ImageHelper.ImageMakeMode.W,wm), new CBB.ImageHelper.ImageSizeType(240,240,false,false,"_s", CBB.ImageHelper.ImageMakeMode.W,null), new CBB.ImageHelper.ImageSizeType(110,110,false,false,"_p", CBB.ImageHelper.ImageMakeMode.Cut,null), new CBB.ImageHelper.ImageSizeType(50,50,false,false,"_i", CBB.ImageHelper.ImageMakeMode.Cut,null) }; new CBB.ImageHelper.ImageUpload().AddImageToGridFS(nFilename, file.InputStream, imagetypes); } } mym.MemberPhoto.IconID = myp.ID; mym.MemberInfomation.IconPath = myp.FileName; mym.Status.PhotoCount = 1; BiZ.MemberManager.MemberManager.SaveMember(mym); return Json(mym); }