Ejemplo n.º 1
0
        /// <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;
        }
Ejemplo n.º 2
0
        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;
        }
Ejemplo n.º 3
0
        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);
        }