Menu

Uploading files from Angular 2 and ASP.NET Core Web API – Part 2

This is the part 2 demonstrating how to save the files sent by Angular 2 on ASP.NET Core server. Please check out part 1 for Angular 2.

I have amended the code slightly while adding to to this blog post but basics remain the same.

[HttpPost("Upload")]
public async Task<IActionResult> Upload()
{
  var attachmentId= Request.Form["attachmentId"];
  await SaveFilesAndUpdateDatabase(attachmentId);
  var output = Mapper.Map<DetailsViewModel>(entity);
  return CreatedAtRoute("GetAttachment", new { controller = "Attachments", id = attachmentId}, output);
}

private async Task SaveFilesAndUpdateDatabase(int attachmentId)
{
  var files = Request.Form.Files;
           
  foreach (var file in files)
  {
    if (file.Length > 0)
    {
        var uniqueName = $"{Guid.NewGuid()}{Path.GetExtension(file.FileName)}";
        var savePath = Path.Combine(_uploadPath, uniqueName);
        using (var fileStream = new FileStream(savePath, FileMode.Create))
        {
          await file.CopyToAsync(fileStream);       
          // saving to database logic ca go here                 
        }
    }
  }
}

Please check out part 1 for Angular 2.

Leave a comment