Search code examples
c#asp.netasp.net-coreasp.net-web-apipostman

Asp.Net Web Api multiple files with additional data for each


I am trying to send multiple files along with some data for every file. This is my model:

public class FileDTO
{
    [Required]
    public IFormFile File { get; set; }
    [Required]
    public string CategoryName { get; set; }
    [Required]
    public string CategoryDescription { get; set; }
    public string Detail { get; set; }
}

This is my controller:

[HttpPost("Upload/{id:int}")]
public async Task<IActionResult> Upload(int id, IEnumerable<FileDTO> appFileDTOs)
{
    ...
}

Is this even a correct way to do so? How do I send such a request in Postman to simulate it?

Thanks in advance!

Edit

I tried it like this in Postman:

Postman Screenshot

Everything submits correctly besides the image. For some reason the image is always null...


Solution

  • [] represents collection/dictionary index while dot(.) represents there's a property.

    So you should rename all the field names with the dot representation.

    For example, change

    appFileDTOs[0][File]
    

    to

    appFileDTOs[0].File
    

    Demo

    enter image description here