protected void CreatAlbum_OnClick(object sebder, EventArgs e) { int groupId = 0; CY.UME.Core.Business.Group group; #region validate if (TBXAlbumName.Text.Trim().Length == 0) { ShowAlert("提示", "相册名不能为空"); return; } if (HF_groupId.Value != "" && int.TryParse(HF_groupId.Value.ToString(), out groupId)) { group = CY.UME.Core.Business.Group.Load(groupId); if (group == null) { throw new Exception("该群组不存在或已被删除"); } } else { throw new Exception("参数错误"); } #endregion #region creat album int viewPermission = 1; int.TryParse(selViewPermission.Value, out viewPermission); long albumId = 0; CY.UME.Core.Business.Album album = new CY.UME.Core.Business.Album(); if (HF_albumId.Value != "" && long.TryParse(HF_albumId.Value.ToString(), out albumId)) { album = CY.UME.Core.Business.Album.Load(albumId); if (album == null) { album = group.CreateGroupAlbum(TBXAlbumName.Text.Trim(), viewPermission); Page.ClientScript.RegisterClientScriptBlock(GetType(), "", "<script>cy.ume.ui.window({ title: '提示', content: '创建相册成功' });window.location.href='PictureList.aspx?albumId=" + album.Id + "'</script>"); } else { album.Name = TBXAlbumName.Text.Trim(); album.ViewPermission = int.Parse(selViewPermission.Value); album.Save(); Page.ClientScript.RegisterClientScriptBlock(GetType(), "", "<script>cy.ume.ui.window({ title: '提示', content: '修改相册成功' });window.location.href='PictureList.aspx?albumId=" + album.Id + "'</script>"); } } else { album = group.CreateGroupAlbum(TBXAlbumName.Text.Trim(), viewPermission); Page.ClientScript.RegisterClientScriptBlock(GetType(), "", "<script>cy.ume.ui.window({ title: '提示', content: '创建相册成功' });window.location.href='PictureList.aspx?albumId=" + album.Id + "'</script>"); } #endregion #region upload pic string strPicId = String.Empty; List<HttpPostedFile> hfList = new List<HttpPostedFile>(); if (PortugueseFileUpload1.HasFile) { hfList.Add(PortugueseFileUpload1.PostedFile); } if (PortugueseFileUpload2.HasFile) { hfList.Add(PortugueseFileUpload2.PostedFile); } if (PortugueseFileUpload3.HasFile) { hfList.Add(PortugueseFileUpload3.PostedFile); } if (PortugueseFileUpload4.HasFile) { hfList.Add(PortugueseFileUpload4.PostedFile); } if (PortugueseFileUpload5.HasFile) { hfList.Add(PortugueseFileUpload5.PostedFile); } for (int i = 0; i < hfList.Count; i++) { HttpPostedFile imgFile = hfList[i]; if (imgFile == null || imgFile.ContentLength == 0) { break; } string imgExtention = CY.Utility.Common.FileUtility.GetFileExtension(imgFile.FileName).ToLower(); string imgName = CY.Utility.Common.FileUtility.GetFileName(imgFile.FileName); string appPath = CY.Utility.Common.RequestUtility.CurPhysicalApplicationPath; string dirPath = appPath + "/Content/Group/Album/" + groupId + "/"; string fileName = "/Content/Group/Album/" + groupId + "/" + DateTime.Now.ToString("yyyMMddhhmmss") + DateTime.Now.Millisecond.ToString();//相册图片以加时间命名 System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(dirPath); if (!di.Exists) { di.Create(); } string bImgName = appPath + fileName + "_big" + imgExtention; string mImgName = appPath + fileName + "_middle" + imgExtention; string sImgName = appPath + fileName + "_small" + imgExtention; imgFile.SaveAs(appPath + fileName + imgExtention);//临时保存原始图片 Bitmap bmp = new Bitmap(appPath + fileName + imgExtention); int width = bmp.Width; int height = bmp.Height; bmp.Dispose(); if (height <= width && width >= 600) { height = Convert.ToInt32(width > 600 ? (600f / width) * height : height); width = 600; } else if (width < height && height > 600) { width = Convert.ToInt32(height > 600 ? (600f / height) * width : height); height = 600; } // 将原始图压缩为大缩略图 using (StreamReader reader = new StreamReader(appPath + fileName + imgExtention)) { CY.Utility.Common.ImageUtility.ThumbAsJPG(reader.BaseStream, bImgName, width, height); } if (width > 200) { height = Convert.ToInt32(width > 200 ? (200f / width) * height : height); width = 200; } // 生成图片(好友上传图片最新通知中显示) using (StreamReader reader = new StreamReader(appPath + fileName + imgExtention)) { CY.Utility.Common.ImageUtility.ThumbAsJPG(reader.BaseStream, sImgName, width, height); } if (height <= width && width >= 100) { height = Convert.ToInt32(width > 100 ? (100f / width) * height : height); width = 100; } else if (width < height && height > 100) { width = Convert.ToInt32(height > 100 ? (100f / height) * width : height); height = 100; } // 将大图片压缩为中等缩略图 using (StreamReader reader = new StreamReader(appPath + fileName + imgExtention)) { CY.Utility.Common.ImageUtility.ThumbAsJPG(reader.BaseStream, mImgName, width, height); } try { File.Delete(appPath + fileName + imgExtention); } catch { ; } //更换相册封面 if (album.PhotoCount == 0 || album.CoverPath.Trim().Length == 0) { album.CoverPath = fileName + "_middle" + imgExtention; album.Save(); } //将路径及图片信息保存到数据库 CY.UME.Core.Business.Picture pic = new CY.UME.Core.Business.Picture(); pic.AlbumId = album.Id; pic.BigPath = fileName + "_big" + imgExtention; pic.DateCreated = DateTime.Now; pic.MiddlePath = fileName + "_middle" + imgExtention; pic.Name = CY.Utility.Common.StringUtility.HTMLEncode(imgName.Substring(0, imgName.Length > 30 ? 30 : imgName.Length)); pic.SmallPath = fileName + "_small" + imgExtention; pic.Save(); strPicId += pic.Id.ToString() + ","; //保存pictureextend CY.UME.Core.Business.PictureExtend pe = new CY.UME.Core.Business.PictureExtend(); pe.Id = pic.Id; pe.AccountId = CurrentAccount.Id; pe.ActivityId = "group"; pe.ActivityPicId = "0"; pe.Save(); } if (viewPermission == 0 && strPicId.Length > 0) { IList<CY.UME.Core.Business.Friendship> fsList = CurrentAccount.GetFriendships(); foreach (CY.UME.Core.Business.Friendship fs in fsList) { CY.UME.Core.Business.Notice n = new CY.UME.Core.Business.Notice(); n.AccountId = fs.FriendId; n.AuthorId = fs.AccountId; n.Content = "上传了新照片"; n.DateCreated = DateTime.Now; n.InstanceId = strPicId.Remove(strPicId.Length - 1); n.IsReaded = false; n.Type = "grouppicture"; n.Save(); } } #endregion }
/// <summary> /// 接受手机上传图片 /// </summary> /// <param name="context"></param> /// <returns>0 登录失败 -1请求失败 -2系统错误 -3无图片</returns> public string UploadPicture(HttpContext context) { string email = String.Empty; string description = String.Empty; string strAlbumId = String.Empty; long albumId = 0; string imgName = String.Empty; CY.UME.Core.Business.AccountExtend accountExtend; try { System.IO.Stream s1 = context.Request.InputStream; System.IO.StreamReader sr1 = new System.IO.StreamReader(s1); #region 获取参数并验证 //取参数 if (context.Request.QueryString["AlbumId"] == null || context.Request.QueryString["email"] == null) { return "-1"; } strAlbumId = context.Request.QueryString["AlbumId"].ToString(); if (context.Request.QueryString["Description"] != null) { description = context.Request.QueryString["Description"].ToString(); } email = context.Request.QueryString["email"].ToString(); if (context.Request.QueryString["ImgName"] != null) { imgName = context.Request.QueryString["ImgName"].ToString(); } if (!long.TryParse(strAlbumId, out albumId)) { return "-1"; } accountExtend = CY.UME.Core.Business.AccountExtend.Load(email); if (accountExtend == null) { return "0"; } #endregion string imgExtention = CY.Utility.Common.FileUtility.GetFileExtension(imgName); string imgRealName = CY.Utility.Common.FileUtility.GetFileName(imgName); string appPath = CY.Utility.Common.RequestUtility.CurPhysicalApplicationPath; string dirPath = appPath + "/Content/Album/" + accountExtend.Id + "/"; string fileName = "/Content/Album/" + accountExtend.Id + "/" + DateTime.Now.ToString("yyyMMddhhmmss") + DateTime.Now.Millisecond.ToString();//相册图片以加时间命名 System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(dirPath); if (!di.Exists) { di.Create(); } if (context.Request.InputStream.Length == 0) { return "-3"; } System.IO.Stream s = context.Request.InputStream; byte[] bytes = new byte[s.Length]; s.Read(bytes, 0, bytes.Length); s.Seek(0, SeekOrigin.Begin); Stream stream = new MemoryStream(bytes); Image image = Image.FromStream(stream); s.Close(); int width = image.Width; int height = image.Height; string bImgName = appPath + fileName + "_big" + imgExtention; string mImgName = appPath + fileName + "_middle" + imgExtention; string sImgName = appPath + fileName + "_small" + imgExtention; if (height < width) { if (width > 600) { height = Convert.ToInt32(width > 600 ? (600f / width) * height : height); width = 600; } } else { if (height > 600) { width = Convert.ToInt32(height > 600 ? (600f / height) * width : height); height = 600; } } CY.Utility.Common.ImageUtility.ThumbAsJPG(stream, bImgName, width, height);//大图片 if (height < width) { if (width > 200) { height = Convert.ToInt32(width > 200 ? (200f / width) * height : height); width = 200; } } else { if (height > 200) { width = Convert.ToInt32(height > 200 ? (200f / height) * width : height); height = 200; } } CY.Utility.Common.ImageUtility.ThumbAsJPG(stream, sImgName, width, height); if (height < width) { if (width > 100) { height = Convert.ToInt32(width > 100 ? (100f / width) * height : height); width = 100; } } else { if (height > 100) { width = Convert.ToInt32(height > 100 ? (100f / height) * width : height); height = 100; } } CY.Utility.Common.ImageUtility.ThumbAsJPG(stream, mImgName, width, height); //更换相册封面 CY.UME.Core.Business.Album album = CY.UME.Core.Business.Album.Load(albumId); if (album == null) { album = new CY.UME.Core.Business.Album(); album.AccountId = accountExtend.Id; album.DateCreated = DateTime.Now; album.IsAvatar = false; album.Name = "默认相册"; album.ViewPermission = 0; album.CoverPath = fileName + "_middle" + imgExtention; album.Save(); } else if (album.PhotoCount == 0 || album.CoverPath.Trim().Length == 0) { album.CoverPath = fileName + "_middle" + imgExtention; album.Save(); } //将路径及图片信息保存到数据库 CY.UME.Core.Business.Picture pic = new CY.UME.Core.Business.Picture(); pic.AlbumId = album.Id; pic.BigPath = fileName + "_big" + imgExtention; pic.DateCreated = DateTime.Now; pic.MiddlePath = fileName + "_middle" + imgExtention; pic.Name = CY.Utility.Common.StringUtility.HTMLEncode(imgRealName); pic.SmallPath = fileName + "_small" + imgExtention; pic.Remark = description; pic.Save(); CY.UME.Core.Business.Account account = CY.UME.Core.Business.Account.Load(accountExtend.Id); account.SendNoticeToAllFriendAndFollower("picture", "上传了新照片", pic.Id.ToString()); return "1"; } catch (Exception e) { return e.Message; } }
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "application/json"; CY.UME.Core.Business.Account account; string bigImgPath, smallImgPath, imgExtention, imgName; string sitePath = CY.Utility.Common.SiteUtility.CurSitePath; String Id = context.Request.QueryString["accountId"].ToString(); long accountId = CY.Utility.Common.ConvertUtility.ConvertToInt(Id, -1); #region -Validation and Get Basic Data- //account = CY.UME.Core.Global.GetCurrentAccount(); account = CY.UME.Core.Business.Account.Load(accountId); if (account == null) { context.Response.Write("{success: false, msg: '用户登录超时,请重新登录!'}"); return; } // post data bigImgPath = context.Request.Form["bigImgPath"]; smallImgPath = context.Request.Form["smallImgPath"]; imgExtention = context.Request.Form["imgExtention"]; imgName = context.Request.Form["imgName"]; if (string.IsNullOrEmpty(bigImgPath) || string.IsNullOrEmpty(smallImgPath) || string.IsNullOrEmpty(imgExtention)) { context.Response.Write("{success: false, msg: '参数错误'}"); return; } if (!File.Exists(sitePath + bigImgPath)) { context.Response.Write("{success: false, msg: '照片不存在'}"); return; } if (!File.Exists(sitePath + smallImgPath)) { context.Response.Write("{success: false, msg: '小头像不存在'}"); return; } #endregion CY.UME.Core.Business.Album avatarAlbum = account.GetMyAvatarAlbum(); if (avatarAlbum == null) { avatarAlbum = new CY.UME.Core.Business.Album(); avatarAlbum.AccountId = account.Id; avatarAlbum.DateCreated = DateTime.Now; avatarAlbum.IsAvatar = true; avatarAlbum.LastModifiedTime = avatarAlbum.DateCreated; avatarAlbum.Name = "头像相册"; avatarAlbum.Save(); } // 相册目录为: 网站根目录 + /Content/Avatar/ + 用户标识 string avatarRelativePath = "/Content/Avatar/" + account.Id + "/"; DirectoryInfo di = new DirectoryInfo(sitePath + avatarRelativePath); // 相册目录 if (!di.Exists) { di.Create(); } string uniqueId = Guid.NewGuid().ToString("N"); string bImgName = uniqueId + "_big" + imgExtention; string mImgName = uniqueId + "_mid" + imgExtention; string sImgName = uniqueId + "_small" + imgExtention; try { Bitmap bmp = new Bitmap(sitePath + bigImgPath); int width = bmp.Width; int height = bmp.Height; bmp.Dispose(); height = Convert.ToInt32(width > 200 ? (200f / width) * height : height); width = 200; // 将大图片压缩为中等缩略图 using (StreamReader reader = new StreamReader(sitePath + bigImgPath)) { CY.Utility.Common.ImageUtility.ThumbAsJPG(reader.BaseStream, di.FullName + mImgName, width, height); } // 将小头像从120*120压缩到48*48 using (StreamReader reader = new StreamReader(sitePath + smallImgPath)) { CY.Utility.Common.ImageUtility.ThumbAsJPG(reader.BaseStream, di.FullName + sImgName, 48, 48); } // 将大图移动到头像目录下 FileInfo fi = new FileInfo(sitePath + bigImgPath); fi.MoveTo(di.FullName + bImgName); try { // File.Delete(sitePath + bigImgPath); File.Delete(sitePath + smallImgPath); } catch { ; } // 添加照片记录 CY.UME.Core.Business.Picture picture = new CY.UME.Core.Business.Picture(); picture.AlbumId = avatarAlbum.Id; picture.BigPath = avatarRelativePath + bImgName; picture.DateCreated = DateTime.Now; picture.MiddlePath = avatarRelativePath + mImgName; picture.Name = imgName; picture.Remark = string.Empty; picture.SmallPath = avatarRelativePath + sImgName; picture.Save(); if (!account.HasAvatar) { account.HasAvatar = true; #region 积分 int uploadAvatarCredit; if (CY.UME.Core.Business.SystemSetting.TryLoadInt32Setting("CreditUploadAvatar", out uploadAvatarCredit) && (uploadAvatarCredit != 0)) { int orgCredit = account.Credit; int modifiedCredit = orgCredit + uploadAvatarCredit; account.Credit = modifiedCredit; CY.UME.Core.Business.CreditHistory ch = new CY.UME.Core.Business.CreditHistory(); ch.AccountId = account.Id; ch.DateCreated = DateTime.Now; ch.Id = Guid.NewGuid(); ch.InstanceId = ""; ch.Original = orgCredit; ch.Modified = modifiedCredit; ch.Variation = uploadAvatarCredit; ch.Type = "uploadavatar"; ch.Description = "上传头像"; ch.Save(); } #endregion account.Save(); } //添加通知 //account.SendNoticeToAllFriend("picture", "更新了头像", picture.Id.ToString()); context.Response.Write("{success: true}"); return; } catch { context.Response.Write("{success: false, msg: '保存头像失败'}"); return; } }
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "application/json"; string strPictureId = context.Request.Form["pictureId"].ToString(); string strASpaceccountId = context.Request.Form["spaceAccountId"].ToString(); long spaceAccountId = 0; long pictureId = 0; if (!long.TryParse(strPictureId, out pictureId) || !long.TryParse(strASpaceccountId,out spaceAccountId)) { context.Response.Write("{success:false,msg:'参数错误'}"); return; } CY.UME.Core.Business.Account currentAccount = CY.UME.Core.Global.GetCurrentAccount(); if (currentAccount == null) { context.Response.Write("{success:false,msg:'用户登录超时'}"); return; } if (spaceAccountId != currentAccount.Id) { context.Response.Write("{success:false,msg:'您无权设置'}"); return; } CY.UME.Core.Business.Picture pic = CY.UME.Core.Business.Picture.Load(pictureId); if (pic == null) { context.Response.Write("success:false,msg:'图片不存在或已被删除'"); return; } try { string appPath = CY.Utility.Common.RequestUtility.CurPhysicalApplicationPath; string dirPath = appPath + "/Content/Album/" + spaceAccountId + "/"; string fileName = "/Content/Album/" + spaceAccountId + "/" + DateTime.Now.ToString("yyyMMddhhmmss") + DateTime.Now.Millisecond.ToString();//相册图片以加时间命名 string imgExtention = CY.Utility.Common.FileUtility.GetFileExtension(pic.BigPath); System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(dirPath); if (!di.Exists) { di.Create(); } string bImgName = appPath + fileName + "_big" + imgExtention; string mImgName = appPath + fileName + "_middle" + imgExtention; string sImgName = appPath + fileName + "_small" + imgExtention; Bitmap bmp = new Bitmap(appPath + pic.BigPath); int width = bmp.Width; int height = bmp.Height; // 保存大图片 using (StreamReader reader = new StreamReader(appPath + pic.BigPath)) { CY.Utility.Common.ImageUtility.ThumbAsJPG(reader.BaseStream, bImgName, width, height); } bmp.Dispose(); height = Convert.ToInt32(width > 200 ? (200f / width) * height : height); width = 200; // 将大图片压缩为中等缩略图 using (StreamReader reader = new StreamReader(bImgName)) { CY.Utility.Common.ImageUtility.ThumbAsJPG(reader.BaseStream, mImgName, width, height); } // 将小头像压缩到48*48 height = Convert.ToInt32(width > 48 ? (48f / width) * height : height); width = 48; using (StreamReader reader = new StreamReader(mImgName)) { CY.Utility.Common.ImageUtility.ThumbAsJPG(reader.BaseStream, sImgName, height, width); } CY.UME.Core.Business.Album album = CY.UME.Core.Business.Album.Load(pic.AlbumId); CY.UME.Core.Business.Account account = CY.UME.Core.Business.Account.Load(album.AccountId); album = account.GetMyAvatarAlbum(); CY.UME.Core.Business.Picture picture = new CY.UME.Core.Business.Picture(); picture.AlbumId = album.Id; picture.BigPath = fileName + "_big" + imgExtention; picture.DateCreated = DateTime.Now; picture.MiddlePath =fileName+ "_middle" + imgExtention; picture.Name = pic.Name; picture.SmallPath = fileName + "_small" + imgExtention; picture.Save(); if (!account.HasAvatar) { account.HasAvatar = true; account.Save(); } context.Response.Write("{success:true}"); } catch (Exception ex) { context.Response.Write("success:false,msg:'" + ex.Message + "'"); } }
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "application/json"; HttpPostedFile imgFile; int activeID = 0; long accountId = 0; if (!int.TryParse(context.Request.QueryString["activeID"].ToString(), out activeID) || !long.TryParse(context.Request.QueryString["accountId"].ToString(), out accountId)) { return; } CY.UME.Core.Business.Activities active = CY.UME.Core.Business.Activities.Load(activeID); if (active == null) { return; } CY.UME.Core.Business.Account account = CY.UME.Core.Business.Account.Load(accountId); if (account == null || account.Id == 0) { return; } CY.UME.Core.Business.Album album = active.GetActiveAlbum(); if (album == null || album.Id == 0) { album = active.CreateActiveAlbum(); } //if (accountId != active.Sponsor) //{ // context.Response.Write("只有活动发起人才能上传图片"); // return; //} //else //{ //获取上传的文件并保存 if (context.Request.Files.Count > 0) { for (int i = 0; i < context.Request.Files.Count; i++) { imgFile = context.Request.Files[i]; if (imgFile == null) { continue; } string imgExtention = CY.Utility.Common.FileUtility.GetFileExtension(imgFile.FileName).ToLower(); string imgName = CY.Utility.Common.FileUtility.GetFileName(imgFile.FileName); string appPath = CY.Utility.Common.RequestUtility.CurPhysicalApplicationPath; string dirPath = appPath + "/Content/Activites/" + accountId + "/"; string fileName = "/Content/Activites/" + accountId + "/" + DateTime.Now.ToString("yyyMMddhhmmss") + DateTime.Now.Millisecond.ToString();//相册图片以加时间命名 System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(dirPath); if (!di.Exists) { di.Create(); } string bImgName = appPath + fileName + "_big" + imgExtention; string mImgName = appPath + fileName + "_middle" + imgExtention; string sImgName = appPath + fileName + "_small" + imgExtention; imgFile.SaveAs(appPath + fileName + imgExtention);//临时保存原始图片 Bitmap bmp = new Bitmap(appPath + fileName + imgExtention); int width = bmp.Width; int height = bmp.Height; bmp.Dispose(); if (height <= width && width >= 600) { height = Convert.ToInt32(width > 600 ? (600f / width) * height : height); width = 600; } else if (width < height && height > 600) { width = Convert.ToInt32(height > 600 ? (600f / height) * width : height); height = 600; } // 将原始图压缩为大缩略图 using (StreamReader reader = new StreamReader(appPath + fileName + imgExtention)) { CY.Utility.Common.ImageUtility.ThumbAsJPG(reader.BaseStream, bImgName, width, height); } if (width > 200) { height = Convert.ToInt32(width > 200 ? (200f / width) * height : height); width = 200; } // 生成图片(好友上传图片最新通知中显示) using (StreamReader reader = new StreamReader(appPath + fileName + imgExtention)) { CY.Utility.Common.ImageUtility.ThumbAsJPG(reader.BaseStream, sImgName, width, height); } if (height <= width && width >= 100) { height = Convert.ToInt32(width > 100 ? (100f / width) * height : height); width = 100; } else if (width < height && height > 100) { width = Convert.ToInt32(height > 100 ? (100f / height) * width : height); height = 100; } // 将大图片压缩为中等缩略图 using (StreamReader reader = new StreamReader(appPath + fileName + imgExtention)) { CY.Utility.Common.ImageUtility.ThumbAsJPG(reader.BaseStream, mImgName, width, height); } try { File.Delete(appPath + fileName + imgExtention); } catch { ; } //将路径及图片信息保存到数据库 CY.UME.Core.Business.Picture pic = new CY.UME.Core.Business.Picture(); pic.AlbumId = album.Id; pic.BigPath = fileName + "_big" + imgExtention; pic.DateCreated = DateTime.Now; pic.MiddlePath = fileName + "_middle" + imgExtention; pic.Name = CY.Utility.Common.StringUtility.HTMLEncode(imgName.Substring(0, imgName.Length > 30 ? 30 : imgName.Length)); pic.SmallPath = fileName + "_small" + imgExtention; pic.Save(); //保存pictureextend CY.UME.Core.Business.PictureExtend pe = new CY.UME.Core.Business.PictureExtend(); pe.Id = pic.Id; pe.AccountId = account.Id; pe.ActivityId = "active"; pe.ActivityPicId = "0"; pe.Save(); context.Response.Write("1"); } } }