ASP Core WebApi Test File Upload using Postman
The complete solution for uploading file or files is shown below:
This action use for uploading multiple files:
// Of course this action exist in microsoft docs and you can read it. HttpPost("UploadMultipleFiles")] public async Task<IActionResult> Post(List<IFormFile> files) { long size = files.Sum(f => f.Length); // Full path to file in temp location var filePath = Path.GetTempFileName(); foreach (var formFile in files) { if (formFile.Length > 0) using (var stream = new FileStream(filePath, FileMode.Create)) await formFile.CopyToAsync(stream); } // Process uploaded files return Ok(new { count = files.Count, path = filePath}); }
The postman picture shows how you can send files to this endpoint for uploading multiple files:
This action use for uploading single file:
[HttpPost("UploadSingleFile")] public async Task<IActionResult> Post(IFormFile file) { // Full path to file in temp location var filePath = Path.GetTempFileName(); if (file.Length > 0) using (var stream = new FileStream(filePath, FileMode.Create)) await file.CopyToAsync(stream); // Process uploaded files return Ok(new { count = 1, path = filePath}); }
The postman picture shows how you can send a file to this endpoint for uploading single file:
Your should be like that
[HttpPost]
public async Task<IActionResult> UploadFile([FromForm]UploadFile updateTenantRequest)
{
}
Your class should be like:-
public class UpdateTenantRequestdto
{
public IFormFile TenantLogo { get; set; }
}
and then
Thanks to @rmjoia's comment I got it working! Here is what I had to do in Postman: