#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»>