public async Task <ActionResult> SaveAsync(IEnumerable <IFormFile> files, string data, UserManager <Models.User> _userManager) { // The Name of the Upload component is "files" if (files != null) { foreach (var file in files) { var fileContent = ContentDispositionHeaderValue.Parse(file.ContentDisposition); var userId = HttpContext.User.Identity.Name; // Some browsers send file names with full path. // We are only interested in the file name. var format = Path.GetExtension(fileContent.FileName.ToString().Trim('"')); var filename = Guid.NewGuid().ToString() + format; var physicalPath = Path.Combine(Directory.GetCurrentDirectory(), @"wwwroot\uploads\" + userId, filename); var path = Path.Combine(Directory.GetCurrentDirectory(), @"wwwroot\uploads\" + userId); bool exists = Directory.Exists(path); if (!exists) { Directory.CreateDirectory(path); } // The files are not actually saved in this demo using (var fileStream = new FileStream(physicalPath, FileMode.Create)) { await file.CopyToAsync(fileStream); } if (data == "avatar") { var user = _accountRepository.GetUser(userId, filename, _userManager); } else { DocumentViewModel document = new DocumentViewModel() { Id = (Guid.NewGuid()).ToString(), DocumentUrl = filename, Type = data, UserId = userId }; _accountRepository.AddDoument(document); } } } // Return an empty string to signify success return(Content("")); }