示例#1
0
 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());
 }
示例#2
0
        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));
        }