如何在 WebAPI 中上传文件以及一些复杂类型 ASP.NET

How to Upload File along with some complex type in ASP.NET WebAPI

本文关键字:复杂 类型 NET ASP 文件 WebAPI      更新时间:2023-09-26

我有一个要求,我必须使用 WEB API 上传文件。因此,为 Post 创建了一个 api 控制器并处理了多部分表单数据,我可以成功上传文件。但是我需要传递一个具有文件名、描述、FormId 等属性的复杂类型......以及文件。那么如何使用单个后控制器来实现这一点。例如。

public HttpResponseMessage Post([FromBody] MyComplexType myType)
{
    //Here I get the files from Request.Content.ReadAsAsyncStream();
    // myType is always null. 
}

同样从客户端(Javascript和.NET Client),我可以发布Mutlipart Formdata或Complex类型。但我需要在同一个请求中同时做这两件事。

请帮忙....

您是否考虑过使用MultipartFormDataProvider,其中请求是具有"formurlencoded"数据+文件的多部分请求?...但是,如果您的请求类似于"JSON"数据+文件,那么您可以使用MultipartMemoryStreamProvider...如果文件很大并且内存使用是一个问题,您可以创建自定义MultipartStreamProvider...