GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Front-End não esta enviando os dados para o Back-End

Olá!

Simplesmente não sei o que estou errando. Eu fui debugando pelo Inspecionar do Chrome, e a Função novoUpload pega os novos nomes dos arquivos e outros dados, coloca dentro de uma array, passa pelo ApiSolicitacaoComprasUrl.novoUpload e retorna os valores para jogar numa outra função que preenche todos os itens de uma solicitação de compras.

Todo o momento eu vejo que os dados já estão no objeto que será enviado, mas quando chega no Back-End ele está vazio.

E resumo, o Front-End não esta enviando os dados para o Back-End. Alguém pode me ajudar?

A função novoUpload do Front-End em Javascript

function novoUpload(nomeFoto) {

    data = new Date();

    dia = String(data.getDate()).padStart(2, '0');

    mes = String(data.getMonth() + 1).padStart(2, '0');

    ano = data.getFullYear();

    dataAtual = dia + '/' + mes + '/' + ano;

   

    id = $rootScope.usuario.id; //ext = path.split('.').pop();

    arq = [];

    debugger

    for (i=0; i < nomeFoto.length; i++){            

      arq[i] = {

        url : "app/upload/"+nomeFoto[i].defaultValue,

        userId : id,

        upIdAcao : 2,

        upTipo : 1,

        upData : dataAtual

      }

    }

    debugger

    var obj = arq;

    ApiSolicitacaoComprasUrl.novoUpload(obj).success(function (result) {      

      sp.loadingArquivosAdicionados = true;

    }).error(function (error) {

      sp.loadingArquivosAdicionados = false;

    });

   

    return arq;

  }

A função ApiSolicitacaoComprasUrl.novoUpload

'novoUpload': function (obj) {

      debugger

      var url = $rootScope.url_api + "upload/novoUpload";

      return ajax.post(url, obj);

    }

Vc deve usar FormData.

Veja a doc: FormData - Web APIs | MDN.

Veja uma exemplo:

this.uploadFileToUrl = function(file, uploadUrl){
  var fd = new FormData();
  fd.append('file', file);
  
  $http.post(uploadUrl, fd, {
    transformRequest: angular.identity,
    headers: {'Content-Type': undefined}
  }).success(function(){

  }).error(function(){

  });
}

O file que chega como parâmetro é o input file que está no formulário do seu html.

FONTE: AngularJS - Upload File

Voltando pra mostrar a solução:

function novoUpload2(nomeFoto) {

    var data = new Date();

    dataAtual = data.getFullYear() +"-"+ String((data.getMonth()+1)).padStart(2, '0') +"-"+ String(data.getDate()).padStart(2, '0') + " " + String(data.getHours()).padStart(2, '0') + ":" + String(data.getMinutes()).padStart(2, '0') + ":" + String(data.getSeconds()).padStart(2, '0'); //dia + '/' + mes + '/' + ano;

   

    id = $rootScope.usuario.id;

    //ext = path.split('.').pop();

   

    debugger

    for (i=0; i < nomeFoto.length; i++){            

      sp.arq[i] =

      {

        url : "app/upload/"+nomeFoto[i].defaultValue,

        userId : id,

        upTipo : 1,

        upData : dataAtual,

        upIdAcao : 2        

      }

    }

    var param = {"arq": sp.arq};

    ApiSolicitacaoComprasUrl.novoUpload(param).success(function (result) {

      debugger

      $.notify(result.Data.message, "success");

      sp.loadingSalvar = false;    

    }).error(function (error) {

      sp.loadingSalvar = false;

    });

   

  }
//