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:
Qu'est-ce que je fais mal?
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:
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: