Sende FormData mit anderem Feld in Angular

Ich habe ein Formular mit zweiinput text und einupload. Ich muss es an den Server senden, habe aber Probleme, die Datei mit dem Text zu verknüpfen. Der Server erwartet diese Antwort:

"title=first_input" "text=second_input" "file=my_file.pdf"

Dies ist das html:

<input type="text" ng-model="title">
<input type="text" ng-model="text">
<input type="file" file-model="myFile"/>
<button ng-click="send()">

Dies ist dasRegle:

$scope.title = null;
$scope.text = null;

$scope.send = function(){
  var file = $scope.myFile;
  var uploadUrl = 'my_url';
  blockUI.start();
  Add.uploadFileToUrl(file, $scope.newPost.title, $scope.newPost.text, uploadUrl);
};

Dies ist das Direktive fileModel:

  return {
restrict: 'A',
link: function(scope, element, attrs) {
  var model = $parse(attrs.fileModel);
  var modelSetter = model.assign;

  element.bind('change', function(){
    scope.$apply(function(){
      modelSetter(scope, element[0].files[0]);
    });
  });
}
};

Und das ist dasBedienun welche den Server anrufen:

  this.uploadFileToUrl = function(file, title, text, uploadUrl){
   var fd = new FormData();
   fd.append('file', file);
   var obj = {
     title: title,
     text: text,
     file: fd
   };
   var newObj = JSON.stringify(obj);

     $http.post(uploadUrl, newObj, {
       transformRequest: angular.identity,
       headers: {'Content-Type': 'multipart/form-data'}
     })
  .success(function(){
    blockUI.stop();
  })
  .error(function(error){
    toaster.pop('error', 'Errore', error);
  });
}

Wenn ich versuche zu senden, erhalte ich den Fehler 400 und die Antwort lautet:Multipart form parse error - Invalid boundary in multipart: None. Die Nutzlast der Anfrage ist:{"title":"sadf","text":"sdfsadf","file":{}}

Antworten auf die Frage(10)

Ihre Antwort auf die Frage