2013-10-27 5 views
7

Ich habe dieses Tutorial zur Unterstützung des Hochladens von Dateien als Teil von MVC4 WebAPI: http://blogs.msdn.com/b/henrikn/archive/2012/03/01/file-upload-and-asp-net-web-api.aspx.WebAPI-Uploadfehler. Erwartetes Ende des MIME-Multipart-Streams MIME-Multipart-Nachricht ist nicht vollständig

Wenn mein Controller die Anforderung empfängt, beschwert er sich darüber, dass die mehrteilige MIME-Nachricht nicht vollständig ist. Hat jemand irgendwelche Tipps, wie man das debuggt? Ich habe versucht, die Position des Streams auf 0 zurückzusetzen, weil es sonst etwas anderes gab, bevor es den Handler traf.

Mein HTML sieht wie folgt aus:

<form action="/api/giggl" method="post" enctype="multipart/form-data"> 
    <span>Select file(s) to upload :</span> 
    <input id="file1" type="file" multiple="multiple" /> 
    <input id="button1" type="submit" value="Upload" /> 
</form> 

und Post meiner Controller-Methode wie folgt aus:?

public Task<IEnumerable<string>> Post() 
    { 
     if (Request.Content.IsMimeMultipartContent()) 
     { 
      Stream reqStream = Request.Content.ReadAsStreamAsync().Result; 
      if (reqStream.CanSeek) 
      { 
       reqStream.Position = 0; 
      } 

      string fullPath = HttpContext.Current.Server.MapPath("~/App_Data"); 
      var streamProvider = new MultipartFormDataStreamProvider(fullPath); 

      var task = Request.Content.ReadAsMultipartAsync(streamProvider).ContinueWith(t => 
      { 
       if (t.IsFaulted || t.IsCanceled) 
        Request.CreateErrorResponse(HttpStatusCode.InternalServerError, t.Exception); 

       var fileInfo = streamProvider.FileData.Select(i => 
       { 
        var info = new FileInfo(i.LocalFileName); 
        return "File uploaded as " + info.FullName + " (" + info.Length + ")"; 
       }); 
       return fileInfo; 

      }); 
      return task; 
     } 
     else 
     { 
      throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotAcceptable, "Invalid Request!")); 
     } 
    } 

Fehle ich etwas offensichtlich>

+1

Dieser Fehler wurde behoben. Die Eingabeelemente benötigten 'name' Elemente gesetzt! – trilson

+0

Das hilft mir noch nicht, da beide gleiche ID haben, Name zeigt immer noch den Fehler "n Fehler ist aufgetreten.Unerwartetes Ende der MIME-Multipart-Stream. MIME-Multipart-Nachricht ist nicht vollständig.System.IO.IOException at System.Net.Http .Formatting.Parsers.MimeMultipartBodyPartParser d__0.MoveNext() bei System.Net.Http.HttpContentMultipartExtensions.MoveNextPart (MultipartAsyncContext-Kontext) --- Ende des Stack-Trace vom vorherigen Speicherort, an dem sich die Ausnahme befand – HydPhani

Antwort

8

können Sie versuchen, den „Namen Hinzufügen "Attribut zu Ihrer Eingabedatei?

<input name="file1" id="file1" type="file" multiple="multiple" /> 
Verwandte Themen