web-dev-qa-db-fra.com

ASP Core Web Api Test File Upload using Postman

J'ai créé un point de terminaison qui prend un fichier arbitraire:

[HttpPost()]
public async Task<IActionResult> CreateFile(IFormFile file)

Lorsque je le teste avec Postman, le file est toujours nul.

Voici ce que je fais dans Postman:

Postman screenshot

Qu'est-ce que je fais mal?

12
Zeus82

Grâce au commentaire de @ rmjoia, je l'ai fait fonctionner! Voici ce que je devais faire dans Postman:

enter image description here

22
Zeus82

La solution complète pour télécharger le ou les fichiers est présentée ci-dessous:

  • Cette action permet de télécharger plusieurs fichiers :

    // 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});
    }
    

L'image du facteur montre comment vous pouvez envoyer des fichiers à ce point de terminaison pour télécharger plusieurs fichiers: enter image description here

  • Cette action permet de télécharger un seul fichier :

    [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});
    }
    

L'image du facteur montre comment vous pouvez envoyer un fichier à ce point de terminaison pour télécharger un seul fichier: enter image description here

10
SLDev

Tu devrais être comme ça

 [HttpPost]       
   public async Task<IActionResult> UploadFile([FromForm]UploadFile updateTenantRequest)
        {
}

Votre classe devrait être comme: -

public class UpdateTenantRequestdto
    {


        public IFormFile TenantLogo { get; set; }
    }

puis enter image description here

1
MayankGaur