如何通过 Swagger UI 通过 ASP.net C# 控制器上传小文件?
How to upload a small file through an ASP.net C# controller through a Swagger UI?
我正在尝试实现一个控制器来通过 IFormFile 上传一个小文件。当我只有 IFormFile 和字符串作为参数时,它可以工作(参见图像 #2)。当我添加一个命令时 object 它没有(见图 #1)。
[HttpPost()]
public async Task<IActionResult> Upload(IFormFile file, string fileName, AddResumeCommand command)
{
return Accepted();
}
我正在使用 Swashbuckle.AspNetCore 版本 5.6.3。
Swagger UI 看起来像这样:
现在以下工作:
[HttpPost()]
public async Task<IActionResult> Upload(IFormFile file, string fileName)
{
return Accepted();
}
Swagger UI 是:
我希望第一个屏幕看起来像第二个屏幕,其中有“文件选择”。
答案是用 [Consumes("multipart/form-data")] 注释我的控制器以及以下函数定义:
public async Task<IActionResult> Upload([FromForm] AddResumeFileCommand fileCommand) { }
其中 AddResumeFileCommand 是:
public class AddResumeFileCommand
{
public string FileName { get; set; }
public IFormFile FormFile { get; set; }
public AddResumeFileCommand( string fileName, IFormFile formFile)
{
FileName = fileName;
FormFile = formFile;
}
}
我正在尝试实现一个控制器来通过 IFormFile 上传一个小文件。当我只有 IFormFile 和字符串作为参数时,它可以工作(参见图像 #2)。当我添加一个命令时 object 它没有(见图 #1)。
[HttpPost()]
public async Task<IActionResult> Upload(IFormFile file, string fileName, AddResumeCommand command)
{
return Accepted();
}
我正在使用 Swashbuckle.AspNetCore 版本 5.6.3。
Swagger UI 看起来像这样:
现在以下工作:
[HttpPost()]
public async Task<IActionResult> Upload(IFormFile file, string fileName)
{
return Accepted();
}
Swagger UI 是:
我希望第一个屏幕看起来像第二个屏幕,其中有“文件选择”。
答案是用 [Consumes("multipart/form-data")] 注释我的控制器以及以下函数定义:
public async Task<IActionResult> Upload([FromForm] AddResumeFileCommand fileCommand) { }
其中 AddResumeFileCommand 是:
public class AddResumeFileCommand
{
public string FileName { get; set; }
public IFormFile FormFile { get; set; }
public AddResumeFileCommand( string fileName, IFormFile formFile)
{
FileName = fileName;
FormFile = formFile;
}
}