それは簡単には不可能です。Web APIのモデルバインディングはMVCの場合とは根本的に異なり、ファイルのストリームをモデルに読み込み、さらにプリミティブをバインドするMediaTypeFormatterを作成する必要がありますが、これは非常に困難な場合があります。
最も簡単な解決策は、そのプロバイダーからの名前と値の収集MultipartStreamProvider
を使用して、あるタイプのパラメーターと他のパラメーターを使用して、要求からファイルストリームを取得することです。FormData
例-http ://www.asp.net/web-api/overview/working-with-http/sending-html-form-data,-part-2 :
public async Task<HttpResponseMessage> PostFormData()
{
if (!Request.Content.IsMimeMultipartContent())
{
throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
}
string root = HttpContext.Current.Server.MapPath("~/App_Data");
var provider = new MultipartFormDataStreamProvider(root);
try
{
await Request.Content.ReadAsMultipartAsync(provider);
// Show all the key-value pairs.
foreach (var key in provider.FormData.AllKeys)
{
foreach (var val in provider.FormData.GetValues(key))
{
Trace.WriteLine(string.Format("{0}: {1}", key, val));
}
}
return Request.CreateResponse(HttpStatusCode.OK);
}
catch (System.Exception e)
{
return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e);
}
}