Exemple #1
0
        public async Task <IActionResult> UploadStudentImage(IFormFile file)
        {
            var files = Request.Form.Files;

            if (file.Length > 0 && file.Length < 500000)
            {
                //Get Request's User
                var claimsIdentity = (ClaimsIdentity)this.User.Identity;
                if (!claimsIdentity.IsAuthenticated)
                {
                    return(Unauthorized());
                }
                //Get Student Profile
                var claim     = claimsIdentity.FindFirst(System.Security.Claims.ClaimTypes.NameIdentifier);
                var userEmail = claim.Value;
                var User      = await _userManager.FindByEmailAsync(userEmail);

                var checkExtension    = Path.GetExtension(file.FileName).ToLower();
                var allowedExtentions = new[] { ".png", ".jpg", ".jpeg" };

                if (!allowedExtentions.Contains(checkExtension))
                {
                    return(Ok(new { Status = "Failed", Msg = "Wrong Image Type We Only Allow .png .jpg .jpeg" }));
                }
                string path     = Path.Combine(_env.WebRootPath, "uploadedimages");
                var    fileName = Guid.NewGuid() + file.FileName;
                using (var fs = new FileStream(Path.Combine(path, fileName), FileMode.Create))
                {
                    file.CopyTo(fs);
                }

                var result = _profileSrv.UpdateStudentImage(User.Id, "/uploadedimages/" + fileName);
                return(Ok(new { Status = "Success", ImagePath = result }));
            }
            return(Ok(new { Status = "Failed", Msg = "Exceed Sizes Limit" }));
        }