【问题标题】:Uploading multiple files with curl results in empty IFormFile list使用 curl 上传多个文件会导致 IFormFile 列表为空
【发布时间】: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&lt;IFormFile&gt; 参数?

我已经通过互联网进行了搜索,但在所有示例中我都能够找到代码是相同的,就像我的一样,所以我不明白有什么不同。

【问题讨论】:

    标签: c# curl file-upload asp.net-core


    【解决方案1】:

    解决了。这是我的一个愚蠢的错误。如果您将 List&lt;IFormFile&gt; 实例的名称设置为 files,那么在 curl 命令中您必须将其命名为 files,而不是像我那样命名为 files[]。修复后它就像一个魅力。

    【讨论】:

      猜你喜欢
      • 2017-11-12
      • 2011-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-24
      相关资源
      最近更新 更多