Olá, estou com uma dúvida. Criei uma api rest com PHP e estou usando o AngularJS. Estou enviando texto e uma imagem (input file). No método post o AngularJS retorna o array com o arquivo (foto), mas no método put ele retorna vazio. Criei a variável fromData para ele localizar a imagem e não entendi pq ele tem essa diferença. Alguém pode me ajudar?
// Controller
$scope.submeter = function(){
var fromData = new FormData();
for(var key in $scope.autor)
fromData.append(key, $scope.autor[key]);
if ($scope.autorForm.$valid){
if ($routeParams.autorId) {
$http.put('../api/autor/' + $scope.autor.idAutor, fromData,{
transformRequest: angular.identity,
headers: {'Content-Type': undefined}
})
.success(function() {
$scope.mensagem = 'Autor alterado com sucesso';
})
.error(function(erro) {
console.log(erro);
$scope.mensagem = 'Não foi possível alterar o autor';
});
}else {
$http.post('../api/autor', fromData, {
transformRequest: angular.identity,
headers: {'Content-Type': undefined}
})
.success(function(){
$scope.autor = {};
$scope.mensagem = 'Autor adicionado com sucesso';
})
.error(function(erro){
console.log(erro);
$scope.mensagem = 'Autor não adicionado';
});
};
};
};
});
// diretiva
angular.module('uploadFile',[]).directive('inputFile', ['$parse', function($parse){
return{
restrict : 'A',
link : function(scope, element, attrs){
var model = $parse(attrs.inputFile);
var modelSetter = model.assign;
element.bind('change', function(){
scope.$apply(function(){
modelSetter(scope, element[0].files[0]);
})
})
}
}
}]);
Agradeço a ajuda ;)