Example #1
0
        public async Task <IHttpActionResult> UploadPhoto(bool saveToTemporary = true)
        {
            var    file = HttpContext.Current.Request.Files.Count > 0 ? HttpContext.Current.Request.Files[0] : null;
            string path = string.Empty;

            string      userId      = User.Identity.GetUserId();
            UploadImage uploadImage = new UploadImage(userId);

            if (file != null)
            {
                if (!saveToTemporary)
                {
                    path = UploadImageProperties.ImageUserFolder;
                }

                UploadImageResult result = await uploadImage.ImageCropAndResize(file, w : UploadImageProperties.ImageSmallResize, h : UploadImageProperties.ImageSmallResize, path : path);

                if (!String.IsNullOrEmpty(result.Error))
                {
                    ModelState.AddModelError("Upload", result.Error);
                    return(BadRequest(ModelState));
                }

                var adress = UploadImageProperties.BlobAdress + result.PathFile;
                return(Ok(adress));
            }
            else
            {
                ModelState.AddModelError("FileError", "File was not received by the server");
                return(BadRequest(ModelState));
            }
        }
Example #2
0
        private UploadImageResult Upload(UploadImageContext context)
        {
            _logger.Debug("Upload Image \n\r==================");

            int  returnCode = _checkProcesser.Process(context);
            bool success    = (returnCode == ImageErrorMessage.ImageUploadSucess);

            var result = new UploadImageResult
            {
                Success          = success,
                ImageName        = context.FileName,
                ImageUrl         = context.ImageUrl,
                ThumbImageUrl    = context.ThumbUrl,
                CompressImageUrl = context.CompressUrl,
                ReturnCode       = returnCode
            };

            _logger.DebugFormat("the image {0} upload succeed!the image path was:{1}, thumb image path:{2}", result.ImageName, result.ImageUrl, result.ThumbImageUrl);
            _logger.Debug("\n\r===========================================");

            return(result);
        }
        public virtual JsonResult <UploadImageResult> UploadImage()
        {
            var memberService       = UnityHelper.Container.Resolve <IMembershipService>();
            var roleService         = UnityHelper.Container.Resolve <IRoleService>();
            var localizationService = UnityHelper.Container.Resolve <ILocalizationService>();
            var uploadService       = UnityHelper.Container.Resolve <IUploadedFileService>();
            var context             = UnityHelper.Container.Resolve <IMvcForumContext>();
            var loggingService      = UnityHelper.Container.Resolve <ILoggingService>();

            roleService.RefreshContext(context);
            uploadService.RefreshContext(context);
            localizationService.RefreshContext(context);
            memberService.RefreshContext(context);

            try
            {
                if (HttpContext.Current.Request.Files.AllKeys.Any())
                {
                    // Get the uploaded image from the Files collection
                    var httpPostedFile = HttpContext.Current.Request.Files["file"];
                    if (httpPostedFile != null)
                    {
                        HttpPostedFileBase photo = new HttpPostedFileWrapper(httpPostedFile);
                        memberService.GetUser(HttpContext.Current.User.Identity.Name);
                        var permissions =
                            roleService.GetPermissions(null, LoggedOnReadOnlyUser.Roles.FirstOrDefault());
                        // Get the permissions for this Group, and check they are allowed to update
                        if (permissions[ForumConfiguration.Instance.PermissionInsertEditorImages].IsTicked)
                        {
                            // woot! User has permission and all seems ok
                            // Before we save anything, check the user already has an upload folder and if not create one
                            var uploadFolderPath = HostingEnvironment.MapPath(
                                string.Concat(ForumConfiguration.Instance.UploadFolderPath, LoggedOnReadOnlyUser?.Id));
                            if (!Directory.Exists(uploadFolderPath))
                            {
                                Directory.CreateDirectory(uploadFolderPath);
                            }

                            // If successful then upload the file
                            var uploadResult = photo.UploadFile(uploadFolderPath, localizationService);
                            if (!uploadResult.UploadSuccessful)
                            {
                                return(Json(new UploadImageResult()));
                            }

                            // Add the filename to the database
                            var uploadedFile = new UploadedFile
                            {
                                Filename       = uploadResult.UploadedFileName,
                                MembershipUser = LoggedOnReadOnlyUser
                            };

                            uploadedFile.DateCreated = DateTime.UtcNow;

                            var user = context.MembershipUser.FirstOrDefault(x => x.Id == LoggedOnReadOnlyUser.Id);
                            uploadedFile.MembershipUser = user;

                            context.UploadedFile.Add(uploadedFile);
                            // Commit the changes
                            context.SaveChanges();
                            var result = new UploadImageResult {
                                location = uploadResult.UploadedFileUrl
                            };
                            return(Json(result));
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                context.RollBack();
                loggingService.Error(ex);
            }


            return(Json(new UploadImageResult()));
        }