示例#1
0
        /// <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);
            }
        }
示例#2
0
        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);
        }