在asp.net核心上传使用MultiFormDataContent文件的最佳实践

问题描述 投票:0回答:1

我有一个接收api列表上传到服务器上载IFiles。我现在需要一个额外的字符串来描述信息的详细信息上传。我现在的控制器是这样的:

[HttpPost("UploadFiles")]
public async Task<IActionResult> Post(List<IFormFile> files)
{
   // upload to server and other stuff
}

要访问字符串,我已经改变了控制器:

[HttpPost("UploadFiles")]
public async Task<IActionResult> Post(List<IFormFile> files, string uploadDescription)
{
   //some code
}

我现在有机会获得uploadDescription。当测试这个我发送文件作为MultipartFormDataContent,并说明作为查询参数。 虽然这个工作,我不知道在这样一个post动作发送查询参数是最好的做法还是不行。有一个更好的方法吗?

c# asp.net
1个回答
1
投票

有做这样一个Post方法没有最好的做法,但是从我所知,这是更好的可读性单位DTO传递给你的方法要么PostGet,所以我认为这将是更好地改变它,如:

public class FileSpec
{
    public List<IFormFile> Files {get; set;}
    public string UploadDescription {get; set;}
} 

改变你的方法签名一样:

public async Task<IActionResult> Post([FromBody]FileSpec fileSpec)

反正这是依靠你自己,你单独传递参数或者将它们传递作为DTO。

你也可以阅读更多有关参数绑定here

© www.soinside.com 2019 - 2024. All rights reserved.