【发布时间】:2018-08-11 16:46:35
【问题描述】:
我有一个 ASP Net Core 控制器,我想用它来上传多个文件。我已按照this page 中的说明进行操作。我的控制器声明如下所示:
[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> 参数?
我已经通过互联网进行了搜索,但在所有示例中我都能够找到代码是相同的,就像我的一样,所以我不明白有什么不同。
【问题讨论】:
标签: c# curl file-upload asp.net-core