Ola estou apanhando para fazer um cadastro com upload de imagens ao submeter o formulário os dados não chegam ao controller e não recebo nenhuma exception, já adicionei as bibliotecas necessárias para upload. Segue abaixo códigos. Desde já agradeço.
Estabelecimento.html
> <div class="container">
<form id="form_upload" enctype="multipart/form-data" > <div class="col-md-offset-3 col-md-6"> <div class="title-container"> <h3 class="title text-center" data-ng-hide="estabelecimento.id" >Cadastre seu estabelecimento</h3> <h3 class="title text-center" data-ng-show="estabelecimento.id" >Alterar dados estabelecimento</h3> <h4 class="sub-title text-center">É rápido e fácil</h4> </div> <div class="content-form"> <div class="form-group"> <div class="col-md-12"> <span class="dados-obrigatorios"></span> <input class="form-control" placeholder="Nome do Estabelecimento *" data-ng-model="estabelecimento.nome" /> </div> </div> <div class="form-group" data-ng-hide="mostrarEndereco"> <label for="txtSigla" class="col-lg-2 control-label">Cep:</label> <div class="col-lg-10"> <input type="text" class="form-control" id="txtSigla" data-ng-model="estabelecimento.endereco.cep" > </div> <a class="btn btn-primary" data-ng-click="buscarEndereco()">Buscar</a> </div> <div class="form-group" data-ng-show="mostrarEndereco" > <div class="row"> <input type="text" disabled class="field1 disabled state" data-ng-model="estabelecimento.endereco.estado.nome"> <input type="text" disabled class="field2 disabled city" data-ng-model="estabelecimento.endereco.cidade.nome"> </div><!-- /.row --> <div class="row"> <input type="text" class="field4 disabled address" disabled placeholder="Digite seu endereço" data-ng-model="estabelecimento.endereco.logradouro" > <input id="streetNumber" type="text" class="field5 streetNumber" autofocus="autofocus" placeholder="Nº" data-ng-model="estabelecimento.endereco.numero"> </div><!-- /.row --> <div class="row"> <span class="radio-holder field-n7"><a href="#" class="unchecked"></a><input type="checkbox" class="semcompl" value="" data-ng-model="semComplemento" >Sem Complemento</span> <input type="text" placeholder="Complemento" class="field-n6 compl semComplId tooltip-example" id="semComplId" maxlength="20" data-helpermessage="apartamento, bloco, condomínio, etc" data-ng-model="estabelecimento.endereco.complemento" data-ng-disabled="semComplemento" > <input type="text" placeholder="Ponto de referência" class="field-n8 reference tooltip-example" maxlength="180" data-helpermessage="Lugares ou estabelecimento próximos que facilitem a entrega"><span class="tooltip tooltip-helper" style="position: fixed; top: 436px; left: 895.781px; max-width: 335px; display: none;" data-ng-model="estabelecimento.endereco.pontoReferencia"> Lugares ou estabelecimentos próximos que facilitem a entrega</span> </div><!-- /.row --> </div> <div class="form-group"> <div class="col-md-6"> <input class="form-control" placeholder="Estabelecimento abre ás *" data-ng-model="estabelecimento.horaAbertura" /> </div> <div class="col-md-6"> <input class="form-control" placeholder="Estabelecimento fecha ás *" data-ng-model="estabelecimento.horaFechamento" /> </div> </div> <div class="form-group"> <div class="col-md-12"> <input class="form-control" placeholder="Nome completo do responsável pelo estabelecimento *" data-ng-model="estabelecimento.responsavel"/> </div> </div> <div class="form-group"> <div class="col-md-12"> <input class="form-control" placeholder="E-mail do responsável pelo estabelecimento *" data-ng-model="estabelecimento.emailResponsavel"/> </div> </div> <div class="form-group"> <div class="col-md-6"> <label>Cobra taxa de entrega? *: <input type="checkbox" data-ng-model="estabelecimento.cobraEntrega" data-ng-true-value="'Sim'" data-ng-false-value="'Não'"> </label> </div> <div class="col-md-6"> <input id="taxaEntrega" data-ng-model="estabelecimento.taxaEntrega" class="form-control" placeholder="Taxa de entrega (em R$) *" /> </div> </div> <div class="form-group"> <div class="col-md-6"> <label>Distância máxima entrega: <input data-ng-model="estabelecimento.distanciaEntrega"> </label> </div> </div> <div class="form-group"> <div class="col-md-12"> <div class="input-group"> <input data-file-model="myFile" type="file" /> <div class="label label-info"> {{ myFile.name }} </div> </div> </div> <div class="form-group"> <div class="col-md-12"> <input class="form-control" placeholder="Insira um nome de até 12 letras para ser usado no link do seu estabelecimento" data-ng-model="estabelecimento.nomeCurto" maxlength="12" /> </div> </div> </div> </div> </form> <div class="form-group"> <div class="col-md-12"> <a class="btn btn-primary" data-ng-click="save()">Salvar</a> </div> </div> </div>
EstabelecimentoController,js
angular.module(‘app’).controller(‘EstabelecimentoController’, [’$scope’, ‘$http’, ‘$acaoSistema’, ‘$message’, ‘$table’,‘fileService’,‘Upload’,
function($scope, $http, $acaoSistema, $message, $table, fileService, Upload) {
$scope.save = function() { var file = fileService[0]; Upload.upload({ url: 'estabelecimento/save', file: file, method: 'POST', headers: {'Content-Type': 'multipart/form-data'}, // only for html5 data: {'estabelecimento': $scope.estabelecimento} }).error(function (data) { $message.addMsgInf('faio'); });
}
}
Código java para upload
@Post
@Path(“estabelecimento/save”)
@Consumes(“application/json”)
@Secured
public void save(EstabelecimentoTO estabelecimento, UploadedFile file) {
try {
estabelecimentoBO.salvar(estabelecimento);
result.use(Results.http()).body(ResourceMessageUtil.getDescricao(MessageCode.MSG_005)).setStatusCode(200);
} catch (NegocioException e) {
adicionarMensagemErroNegocio(e);
} catch (Exception e) {
adicionarMensagemErroInesperado(e);
}
}