[英]Reading MVC4 WebApi Multipart Data
我正在將多部分表單數據發送到我的WebApi控制器。 我感興趣的內容包括圖像和另一個非圖像值。 我可以讀取圖像沒問題,但無法弄清楚如何讀取用戶名部分(以andy作為值)。 它不在提供程序的FormData屬性中。 我怎么才能得到它?
多部分表單數據
------------ei4KM7KM7ae0GI3Ef1gL6ei4ae0ae0
Content-Disposition: form-data; name="Filename"
image.jpg
------------ei4KM7KM7ae0GI3Ef1gL6ei4ae0ae0
Content-Disposition: form-data; name="username"
andy
------------ei4KM7KM7ae0GI3Ef1gL6ei4ae0ae0
Content-Disposition: form-data; name="Filedata"; filename="image.jpg"
Content-Type: application/octet-stream
------------ei4KM7KM7ae0GI3Ef1gL6ei4ae0ae0
Content-Disposition: form-data; name="Upload"
Submit Query
------------ei4KM7KM7ae0GI3Ef1gL6ei4ae0ae0--
控制器代碼
string root = System.Web.HttpContext.Current.Server.MapPath("~/App_Data");
MultipartFormDataStreamProvider provider = new MultipartFormDataStreamProvider(root);
var task = request.Content.ReadAsMultipartAsync(provider).ContinueWith<HttpResponseMessage>(o =>
{
...
}
在燈架上有一個很好的文章在這里
您的provider
變量應具有名為FormData的NameValueCollection屬性。 因此,您應該能夠執行以下操作:
string username = provider.FormData.GetValues("username").SingleOrDefault();
NB。 我不得不更新我的引用以查看FormData屬性。 我的RC版本是:Microsoft.AspNet.WebApi.Client.4.0.20505.0使用Nuget更新所有WebApi和MVC 4引用給了我Microsoft.AspNet.WebApi.Client.4.0.20710.0。
所以我發現我認為這可能是一種hacky方式:
string username = provider.Contents.First(x=>x.Headers.ContentDisposition.Name == "\"username\"").ReadAsStringAsync().Result;
有更優選的方式嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.