【发布时间】:2021-05-21 04:26:16
【问题描述】:
我有一个 ASP.NET Core 2.2 WebApi,想上传带有一些额外元数据的大文件。该请求是一个多部分/表单数据。因为要上传的文件可能会变得非常大,所以我不想将其读入内存进行处理,而是将其直接流式传输到所需的目的地。 我按照documentation 禁用了表单值模型绑定,还调整了端点的最大请求大小。
但是,Swagger 显然没有认识到请求应该有参数。如何在不定义方法签名中的参数的情况下将这些参数添加到 swagger 文档中?
我的端点类似于以下示例:
[HttpPost]
[DisableFormValueModelBinding]
[DisableRequestSizeLimit]
public async Task<IActionResult> Upload() // "department" and "file" needed in the multipart/form-data
{
// var path = await uploader.UploadAsync(Request);
// return Ok(path);
}
通常,我会像下面的例子那样绑定参数:
public async Task<IActionResult> Upload([FromForm] string department, [FromForm] IFormFile file)
这在 Swagger 中按预期工作,但如上所述,我不想绑定参数。
【问题讨论】:
标签: c# asp.net-core asp.net-web-api swagger multipartform-data