/// <summary> /// 處理成員照片資料 /// </summary> /// <param name="memberId">使用者編號</param> /// <param name="file">照片</param> /// <returns></returns> private string memberPhotoProxy(int memberId, Infrastructure.ViewModel.FileViewModel file) { var fileService = new FileService(); var maxImgWidth = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["maxImgWidth"].ToString()); var maxImgHeight = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["maxImgHeight"].ToString()); var drivePath = System.Configuration.ConfigurationManager.AppSettings["DrivePath"].ToString(); var fileInfo = fileService.UploadFile(memberId, file.FileName, file.ContentType, file.ContentLength, maxImgHeight, maxImgWidth); var path = Path.Combine(drivePath, fileInfo.FileGuid.ToString("N")); var stream = file.InputStream; /*stream轉bytes*/ System.IO.BinaryReader br = new System.IO.BinaryReader(stream); br.BaseStream.Seek(0, System.IO.SeekOrigin.Begin); var bytesInStream = br.ReadBytes((int)br.BaseStream.Length); //實際檔案處理 fileService.FileProxy(file.ContentLength, path, stream, bytesInStream); if (fileInfo == null) { return(null); } else { return(fileInfo.FileUrl); } }
public Infrastructure.ViewModel.MemberManage.MemberPhotoResponse SaveMemberPhotoFile(string token, string account, Infrastructure.ViewModel.FileViewModel photo) { var db = _uow.DbContext; var memberService = new MemberService(); var tokenService = new TokenService(); var checkToken = tokenService.GetTokenInfo(token).Result; if (checkToken == null) { return(null); } var memberData = db.Members.Find(checkToken.MemberId); // var memberInfo = memberService.UserIdToAccount(checkToken.MemberId); if (memberData == null) { return(null); } int?fileImageWidth = null; int?fileImageHeight = null; var fileGuidName = Guid.NewGuid(); var resourcePath = Path.Combine(drivePath, fileGuidName.ToString("N")); var photoStream = photo.InputStream; var photoBitmap = new Bitmap(photoStream); //原始圖片檔 SetPhotoFileInfo(photoBitmap, resourcePath); var imgResizePath = Path.Combine(drivePath, string.Format("{0}_w{1}_h{2}", fileGuidName.ToString("N"), maxImgWidth, maxImgHeight)); //縮圖檔 SetPhotoFileResizeInfo(photoBitmap, resourcePath, maxImgWidth, maxImgHeight, imgResizePath); var image = System.Drawing.Image.FromStream(photoStream); //實體圖片寬高 fileImageWidth = image.Width; fileImageHeight = image.Width; var imgContentType = "image/png"; var fileServer = WebConfigurationManager.AppSettings["loginServer"]; var fileEntity = new Infrastructure.Entity.FileStorage() { Name = memberData.Name + "照片", FileGuid = fileGuidName, FileSize = photo.ContentLength, //Byte FileContentType = imgContentType, Creator = memberData.Id, CreateUtcDate = DateTime.UtcNow, FileUrl = string.Format("{0}api/file/{1}", fileServer, fileGuidName.ToString("N")), FileImageHeight = fileImageHeight, FileImageWidth = fileImageWidth }; // Db File var responseImgData = Create(fileEntity); memberData.Photo = responseImgData.FileImageUrl; memberData.Updated = TimeData.Create(DateTime.UtcNow); memberData.UpdateUser = memberData.Id; db.SaveChanges(); var response = new Infrastructure.ViewModel.MemberManage.MemberPhotoResponse(); response.AcpdId = memberData.Account; response.Photo = responseImgData.FileImageUrl; return(response); }