public IActionResult PostFile([FromBody] File file) { if (file != null) { _unitOfWork.Files.Add(file); _unitOfWork.Save(); var insertedFile = _unitOfWork.Files.GetByID(_unitOfWork.Files.Get().Count()); return(Ok(insertedFile)); } return(BadRequest()); }
public async Task <IActionResult> UploadFile(int id) { long size = 0; User uploadedUser = this.GetAuthenticatedUser(); var originalImageName = ""; string fileId = Guid.NewGuid().ToString().Replace("-", ""); var path = Path.Combine(_hostingEnvironment.WebRootPath, "Files", fileId); var files = Request.Form.Files; var file = files.FirstOrDefault(); originalImageName = Path.GetFileName(file.FileName); var fileExtension = Path.GetExtension(file.FileName); var fullPath = $"{path}{fileExtension}"; if (file.Length > 0) { using (var fileStream = new FileStream(fullPath, FileMode.Create)) { await file.CopyToAsync(fileStream); } } var returnedPath = Request.Scheme + "://" + Request.Host + "/Files/" + fileId + fileExtension; File uploadedFile = new File { Source = returnedPath, Name = originalImageName, Extension = fileExtension, UserId = uploadedUser.Id, ChatId = id }; _unitOfWork.Files.Add(uploadedFile); _unitOfWork.Save(); string message = $"{files.Count} {size} bytes uploaded successfully!"; return(Json(returnedPath)); }