2017-02-23 3 views
1

以下のようなマルチパートフォームデータをWEB API 2コントローラに投稿します。私のデータにはJSONとImageファイルがあります。以下のデータのためにc#apiコントローラコードがどのようになるのか理解してください。jsonデータと画像ファイルをweb api 2のマルチパートフォームデータとして読み込みます。

現時点では私はRequest.Content.ReadAsMultipartAsync(provider);でエラーが取得しています:MIMEマルチパートストリームの

予期しない終了を。あなたのコードで

if (!request.Content.IsMimeMultipartContent("form-data")) 
{ 
    throw new InvalidOperationException("Media type not supported"); 
} 

var root = HttpContext.Current.Server.MapPath("~/App_Data"); 
var provider = new MultipartFormDataStreamProvider(root); 
await request.Content.ReadAsMultipartAsync(provider); 

可能性の問題がある:MIMEマルチパートメッセージは、私はこの数ヶ月前にやろうとしているし、次のコードになってしまってきた

var uploadPath = HttpContext.Current.Server.MapPath("~/Userimage/"); 
Directory.CreateDirectory(uploadPath); 
var provider = new MultipartFormDataStreamProvider(uploadPath); 
await Request.Content.ReadAsMultipartAsync(provider); 

// Files 
// 
foreach (MultipartFileData file in provider.FileData) 
{ 
    Debug.WriteLine(file.Headers.ContentDisposition.FileName); 
    Debug.WriteLine("File path: " + file.LocalFileName); 
} 

// Form data 
// 
foreach (var key in provider.FormData.AllKeys) 
{ 
    foreach (var val in provider.FormData.GetValues(key)) 
    { 
     Debug.WriteLine(string.Format("{0}: {1}", key, val)); 
    } 
} 
return Request.CreateResponse(HttpStatusCode.OK); 
---------------------------acebdf13572468 
Content-Disposition: form-data; name="modelclass" 
Content-Type: application/json 

{ 
    "MessageID": 1, 
    "SenderID": 2, 
    "userType": "sample string 3", 
    "msgCategory": "sample string 4", 
    "msgContent": "sample string 5", 
    "msgDistributedTo": "sample string 6" 
} 
---------------------------acebdf13572468 
Content-Disposition: form-data; name="fieldNameHere"; filename="bg4.jpg" 
Content-Type: image/jpeg 

<@INCLUDE *C:\Users\Lenovo1\Pictures\bg4.jpg*@> 
---------------------------acebdf13572468-- 

答えて

0

を完了されていません既に存在するはずのディレクトリを作成しようとしています。 コードの先頭にコンテンツタイプのチェックを入れてください。

関連する問題