public async Task <IActionResult> Create(Link link, IFormFile image) { if (ModelState.IsValid) { try { if (image != null) { image.Check(1048576, new string[] { "image/jpg", "image/jpeg", "image/png", "image/gif" }); var imagePath = $"uploads/links/{PersianDateTime.Now.ToString("yyyy/MM/dd/yyyyMMddhhmmss")}{DateTime.Now.ToString("ffff") + new Random().Next(1000000, 9999999)}_{Helpers.File.ValidateName(image.FileName)}"; await _ifileManager.SaveFile(image, imagePath); link.ImagePath = $"/{imagePath}"; } _context.Add(link); await _context.SaveChangesAsync(); } catch (Exception e) { TempData["LinkCreateStatus"] = e.Message; } return(RedirectToAction(nameof(Index))); } return(View(link)); }
public async Task <IActionResult> OnPostSetProfileImageAsync(IFormFile image) { //This action is for users that have/have not profile image var user = await _userManager.GetUserAsync(User); if (user == null) { return(NotFound($"کاربر با شناسه '{_userManager.GetUserId(User)}' یافت نشد.")); } try { //Check Validation Of Image image.Check(1048576, new string[] { "image/jpg", "image/jpeg", "image/png", "image/gif" }); //Generate Name & Path Of File var imageName = DateTime.Now.ToString("yyyyMMddhhmmssffff") + Path.GetExtension(image.FileName); var imagePath = Path.Combine("UserUploads/UsersProfile", imageName); //Store File In File System _ifileManager.SaveFile(image, imagePath); if (user.ProfileImagePath.EndsWith("default.png")) { //user has not profile image //Add Image Path To Model user.ProfileImagePath = "/UserUploads/UsersProfile/" + imageName; await _userManager.UpdateAsync(user); } else { //user has profile image //Delete Old Image _ifileManager.DeleteFile(user.ProfileImagePath); //Update Record To Database user.ProfileImagePath = "/UserUploads/UsersProfile/" + imageName; await _userManager.UpdateAsync(user); } StatusMessage = "عکس نمایه شما تنظیم گردید."; } catch (Exception e) { } return(RedirectToPage()); }
public async Task <IActionResult> Edit(short id, IFormFile image, Link linksModel) { if (id != linksModel.Id) { return(NotFound()); } if (ModelState.IsValid) { try { var link = await _context.Links.FindAsync(id); if (link == null) { return(NotFound()); } if (image != null) { image.Check(1048576, new string[] { "image/jpg", "image/jpeg", "image/png", "image/gif" }); var imagePath = $"uploads/links/{PersianDateTime.Now.ToString("yyyy/MM/dd/yyyyMMddhhmmss")}{DateTime.Now.ToString("ffff") + new Random().Next(1000000, 9999999)}-{Helpers.File.ValidateName(image.FileName)}"; //Upload new image await _ifileManager.SaveFile(image, imagePath); //Remove old image _ifileManager.DeleteFile(link.ImagePath); //Set new image link.ImagePath = $"/{imagePath}"; } link.IsExpanded = linksModel.IsExpanded; link.Title = linksModel.Title; link.Url = linksModel.Url; _context.Update(link); await _context.SaveChangesAsync(); } catch (Exception e) { TempData["LinkEditStatus"] = e.Message; } return(RedirectToAction(nameof(Index))); } return(View(linksModel)); }