2016-05-26 9 views
0

Ich verwende diese Anweisung (ng--file-upload), um ein Bild hochzuladen.
Ich muss Bilddatei zu einer POST ASP.NET Web API hinzufügen, aber ich habe keinen Erfolg.
Dies ist meine Methode auf dem Server:Bilddatei kann nicht von ng-Datei-Upload in Web-API hochgeladen werden

public async Task<HttpResponseMessage> SaveData([FromBody]PostModel data) 

Wenn ich poste Daten (von js Winkeln) Alle Daten sind hier außer hochgeladene Datei:

$http({ 
      method: 'POST', 
      url: path, 
      data: data, 
      file: photoFile 
     }).then(function... 

Ich versuchte es in Daten, sondern es auch zu setzen ist immer null.
Wie kann ich Bilddateien auf Web-API posten und erhalten?

Als Antwort erhalte ich:

"Invalid 'HttpContent' instance provided. It does not have a content type header starting with 'multipart/'. 
Parameter name: content" 

Auf dieser Linie:

var provider = new MultipartMemoryStreamProvider(); 
      await Request.Content.ReadAsMultipartAsync(provider); 

var data = {    
      "Username": $scope.username, 
      transformRequest: angular.identity, 
      headers: { 'Content-Type': undefined } 
     }; 

     var fd = new FormData(); 
     fd.append('file', $scope.photoFile); 

     $http({ 
      method: 'POST', 
      url: 'path', fd, 
      data: data 
     }).the 
+0

Sie können den Dienst 'Upload.upload()' verwenden, um die Datei zu senden. Lesen Sie die Dokumentation. – danial

Antwort

1

Verwendung FormData API:

html:

<div class="button" ngf-select="upload($file)">Upload on file select</div> 

Controller:

$scope.upload = function (file) { 
    var fd = new FormData(); 
    fd.append('file', file); 

    //Append other data 
    //angular.forEach(data,function(v,k){ 
    // fd.append(k,v); 
    //}); 

    $http.post('your-upload-url', fd, { 
     transformRequest: angular.identity, 
     headers: {'Content-Type': undefined} 
    }) 
    .then(function(res){ 
     // get upload res 
    }); 
}; 
+0

Aber wie kann ich die Datei auf Web-API-Seite bekommen? – 1110

+0

Sorry, ich dachte, es war ein eckiges Problem .... Nicht gut in C#, aber Sie können [diese] (http://www.asp.net/web-api/overview/advanced/sending-html-form -data-part-2) –

+0

Ich habe die Frage mit dem Senden von Daten aktualisiert, wie Sie vorschlagen, haben Sie vielleicht eine Idee, warum ich einen Fehler von der Frage bekomme? – 1110

Verwandte Themen