2016-02-19 7 views
5

Ich verwende Datei-Upload mit Webapi in meinem Projekt. Ich teste mit Postboten. Request.Content.IsMimeMultipartContent() gibt immer false zurück.wie Datei Upload Fehler im Postboten zu lösen?

Postman Screenshot:

enter image description here

enter image description here

FileUploadController Code:

public async Task<HttpResponseMessage> UserImageUpload() 
    { 
     try 
     { 
      if (!Request.Content.IsMimeMultipartContent()) 
      { 
       throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); 
      } 

      var userImageUploadPath = HttpContext.Current.Server.MapPath(CommonParameters.UserProfileImageServerPath); 
      var streamProvider = new CustomMultipartFormDataStreamProvider(userImageUploadPath); 
      await Request.Content.ReadAsMultipartAsync(streamProvider); 

      var files = new List<string>(); 
      foreach (MultipartFileData file in streamProvider.FileData) 
      { 
       files.Add(Path.GetFileName(file.LocalFileName)); 
      } 

      return Request.CreateResponse(HttpStatusCode.OK, files); 
     } 
     catch (Exception exception) 
     { 
      logger.ErrorFormat("An error occured in UserImageUpload() Method - Class:FileUploadController - Message:{0}", exception); 
      return Request.CreateResponse(HttpStatusCode.BadRequest); 
     } 
    } 
+0

Ich habe versucht, Datei-Upload mit Fiddler. es funktionierte. –

+0

Das gleiche erleben. Hast du das Problem gefunden? – Alex

Antwort

8

Dies ist Postman Fehler. Versuchen Sie, den Content-Type-Header zu entfernen. Beim Senden der aktuellen Post fügt der Browser automatisch den richtigen Header hinzu und erstellt die Grenze.

1

Es gibt keine Notwendigkeit zu erwähnen Content-Type in Headern in Postman, ich habe versucht, Anhänge ohne Content-Type zu senden, es funktioniert gut für mich. Wenn ich Content-Type: multipart/formdata verwendet, gibt es einen Fehler mit der Antwort "Konnte keine Antwort erhalten". Postman sendet Ihre Dateianhänge auch mit Content-Type →text/plain; charset=utf-8.

0

Vielleicht etwas spät. Ich habe den gleichen Fehler in ARC gefunden und gelöst, indem ich einen Namen für das Dateifeld angegeben habe (nach dem blauen Häkchen auf dem zweiten Screenshot)