Загрузка нескольких файлов с помощью curl приводит к пустому списку iformfile

У меня есть контроллер ASP Net Core, который я хочу использовать для загрузки нескольких файлов. Я выполнил инструкции в эта страница. Объявление моего контроллера выглядит так:

[HttpPost("/api/v1.0/assets/{id}")]
public async Task<ApiResponse<Exception>> Post(string id, List<IFormFile> files)

Чтобы проверить, работает ли контроллер, я вызвал его с помощью curl, например:

curl -v -X POST -F "files[]=@thing.json" -F "files[]=@thing.zip" -H 'X-Custom-header1:abc1234' -H 'X-Custom-Header2:abc1234' http://localhost:57535/api/v1.0/assets/asset00134

но я получаю пустой список files. Однако, если я проверю значение HttpContext.Request, я обнаружу, что HttpContext.Request.Form.Files.Count=2 и вся информация о моих файлах (имя, длина и т. д.) Есть и верна.

Почему он не отображается на мой параметр List<IFormFile>?

Я поискал в Интернете, но во всех примерах мне удалось найти такой же код, как и у меня, поэтому я не понимаю, в чем разница.

2
0
1 119
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Решено. Это была глупая ошибка с моей стороны. Если вы установите имя своего экземпляра List<IFormFile> на files, тогда в команде curl вы должны назвать его files, а не files[], как это сделал я. После исправления это сработало как шарм.

Другие вопросы по теме