Должен ли я использовать IFormFile для загрузки файлов в ASP.NET Core API

#asp.net #file-upload #asp.net-core #asp.net-core-mvc #iformfile

#asp.net #загрузка файла #asp.net-core #asp.net-core-mvc #iformfile

Вопрос:

Я могу понять использование IFormFile для загрузки файлов в веб-приложение MVC, но каков правильный метод загрузки файлов с использованием ASP.NET Core при написании API, поддерживающего Swagger?

С помощью IFormFile

 [HttpPost("{id}/content", Name ="PostZipFile")]
[Consumes("application/zip")]
public Task<IActionResult> PostZipFile(int id, [FromBody] IFormFile zipFile)
{
}
  

Используя тело.Поток

 [HttpPost("{id}/content", Name ="PostZipFile")]
[Consumes("application/zip")]
public Task<IActionResult> PostZipFile(int id)
{
    this.Response.Body.Stream
}
  

Комментарии:

1. Это по-прежнему применимо к контроллерам WebAPI-esque. В ASP.NET Оба ядра объединены в одном API. Вам просто нужно отправить запрос ajax post с multipart/form-data типом кодировки

2. Эй, как вы думаете, какой подход является лучшим?

Ответ №1:

Попробуйте это :

 [HttpPost("{id}/content", Name ="PostZipFile")]
public Task<IActionResult> PostZipFile(int id,IFormFile zipFile)
{
}
  

И убедитесь, что на стороне клиента действие формы или запрос Ajax имеет: encoding type= "multipart/form-data"

Комментарии:

1. мне не хватало enctype: <метод формы=»post» enctype=»multipart / form-data»>