gpt4 book ai didi

c# - 使用 Swagger 5.0.0-rcX 和 .Net-Core 3 上传文件

转载 作者:行者123 更新时间:2023-12-03 01:17:08 28 4
gpt4 key购买 nike

我正在使用.NetCore 3 和 Swagger 5.0.0-rc4。我正在尝试使用 Swagger 上传文件(图像),但它不起作用,因为 IOperationFilter 甚至 Swashbuckle.AspNetCore.Swagger 中的 apply 方法缺少一些属性。例如,NonBodyParameter 和 Consumes 在 Swagger 5.0 中不存在

有人遇到同样的问题或尝试解决它吗?

public class FileOperationFilter : IOperationFilter
{

public void Apply(OpenApiOperation operation, OperationFilterContext context)
{
if (operation.OperationId.ToLower() == "apivaluesuploadpost")
{
operation.Parameters.Clear();
operation.Parameters.Add(new **NonBodyParameter**
{
Name = "uploadedFile",
In = "formData",
Description = "Upload File",
Required = true,
Type = "file"
});
operation.**Consumes**.Add("multipart/form-data");
}
}
}

最佳答案

我设法在 Swashbuckle.AspNetCore 6.1.5 中解决了这个问题

Swagger 自动将 IFormFile 识别为 multipart/form-data 媒体类型。

您只需删除过滤器类并从 Controller 中的参数中删除 [FromForm][FromBody] 属性即可。

void Post([FromForm] IFileForm 文件) <= 旧

void Post(IFileForm 文件) <= new

关于c# - 使用 Swagger 5.0.0-rcX 和 .Net-Core 3 上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59288658/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com