2016-08-24 2 views
1

クライアントからWeb APIにファイルをアップロードする際に問題があります。このエラーが発生しました。「予期しないMIMEマルチパートストリームの終わり、MIMEマルチパートメッセージが完了していません。コントローラで、マルチパートのコンテンツを読み込もうとしているとき私はたSuperAgentとJSクライアントを反応させるの構築MAとこれは、要求のために私のコードです:予期しないMIMEマルチパートストリームの終わりです。 MIMEマルチパートメッセージが完全ではありません。 Web APIとスーパーエージェント

UploadFiles(files: File[]): Promise.IThenable<any> { 

    return this.Post("/Payment/files" , { 
     data: { 
      files: files 
     }, 
     headers: { 
      "Content-Type": "multipart/form-data; boundary=gc0p4Jq0M2Yt08jU534c0p", 
      "Content-Disposition": "form-data; name=Foo", 
     } 
    }); 
} 

そして、これは私のコントローラのコードです:私はここでの問題が原因で発生し考える

[Route("files")] 
[HttpPost] 
public async Task<HttpResponseMessage> UploadFiles() 
{ 
     string root = Path.GetTempPath(); 
     var provider = new MultipartFormDataStreamProvider(root); 

     Stream reqStream = Request.Content.ReadAsStreamAsync().Result; 
     MemoryStream tempStream = new MemoryStream(); 
     reqStream.CopyTo(tempStream); 

     tempStream.Seek(0, SeekOrigin.End); 
     StreamWriter writer = new StreamWriter(tempStream); 
     writer.WriteLine(); 
     writer.Flush(); 
     tempStream.Position = 0; 

     StreamContent streamContent = new StreamContent(tempStream); 
     foreach (var header in Request.Content.Headers) 
     { 
      streamContent.Headers.Add(header.Key, header.Value); 

     } 
     try 
     { 
      // Read the form data. 
      streamContent.LoadIntoBufferAsync().Wait(); 

      //This is where it bugs out 
      await streamContent.ReadAsMultipartAsync(provider); 


      return Request.CreateResponse(HttpStatusCode.OK); 
     } 
     catch (Exception e) 
     { 
      return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e); 
     } 

} 

答えて

3

headers: { 
      "Content-Type": "multipart/form-data; boundary=gc0p4Jq0M2Yt08jU534c0p", 
      "Content-Disposition": "form-data; name=Foo", 
     } 

私は同様の問題があり、ヘッダーパラメーターを削除することで解決しました。スーパーエージェントが自動的にそれらを追加すると推測しています。

0

私はこれを行うことによってこの問題を解決:

headers: { 
       "Content-Disposition": "form-data; name=Foo", 
       "enctype": "multipart/form-data" 
      } 
+0

はそれを修正する方法を私を見ることができます! – pcking60

関連する問題