public async Task <IActionResult> Post([FromForm] FileAddModel model) { var files = Request.Form.Files; if (!ModelState.IsValid) { return(BadRequest(model)); } else { var entity = new DAL.Models.File(); entity.CategoryId = model.CatId; entity.Name = model.File.FileName; entity.Description = model.Description; entity.Type = ContentTypeTranslator.GetFileType(model.File.ContentType); using (var memoryStream = new MemoryStream()) { await model.File.CopyToAsync(memoryStream); entity.Data = memoryStream.ToArray(); } this._fileManager.Add(entity); return(Ok()); } }
public FileModel(File file) { Id = file.Id; Path = file.Path; FileType = (FileTypeEnum) file.FileType; Extension = file.Extension; Name = file.Name; Size = file.Size; }
public async Task <ActionResult> UploadFile() { try { var file = Request.Form.Files[0]; var uploadedFile = new File(); string newPath = Path.Combine(_config.ProjectFilesLocation, uploadedFile.Id.ToString()); string fullPath = String.Empty; if (!Directory.Exists(newPath)) { Directory.CreateDirectory(newPath); } if (file.Length > 0) { string fileName = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"'); fullPath = Path.Combine(newPath, fileName); using (var stream = new FileStream(fullPath, FileMode.Create)) { file.CopyTo(stream); } if (newPath.IsNullOrEmpty()) { throw new InvalidOperationException("File Path is null or empty"); } uploadedFile.Path = Path.Combine(uploadedFile.Id.ToString(), fileName).Replace(@"\", "/"); uploadedFile.Downloads = 0; uploadedFile.CreatedDate = DateTime.Now; uploadedFile.UpdatedDate = DateTime.Now; } return(Ok(new { uploadedFile })); } catch (System.Exception ex) { return(StatusCode(500, "Internal server error")); } }