Estou criando uma aplicaçao web que faz o cadastro de funcionários, nesse cadastro há a opção de fazer upload de foto para vincular ao perfil, porem ao cadastrar chega null no banco. Alguem pode me ajudar?
Essa é minha entidade:
public class Agente extends Model{ @Required @Expose public String nome; @Required public String funcao; @Required @MinSize(6) public String login; @MinSize(6) @MaxSize(15) public String senha; @Required @Email public String email; public Blob foto; @Enumerated(EnumType.STRING) public Status status; public Agente() { status = Status.ATIVO; } }
O meu controller de cadastro:
public static void cadastrarFuncionarios(@Valid Agente funcionario, String senha) throws Exception { Agente funcionarioBanco = Agente.find("email = ? or login = ?", funcionario.email, funcionario.login).first(); if (funcionario.id == null) { if (funcionarioBanco != null && funcionarioBanco.id != funcionarioBanco.id && funcionarioBanco.foto == null) { validation.addError("funcionario.email", "E-mail já existente"); validation.addError("funcionario.login", "Usuário já existente"); validation.addError("funcionario.foto", "Imagem já cadastrada"); } if (validation.hasErrors() || !funcionario.senha.equals(senha)) { validation.addError("funcionario.senha", "Senha não corresponde"); params.flash(); validation.keep(); form(); } if (funcionario.foto == null && funcionario.id != null) { Agente n = Agente.findById(funcionario.id); if (n.foto.exists()) { funcionario.foto = n.foto; } } funcionario.senha = Crypto.passwordHash(senha); validation.valid("cadastrado com sucesso"); funcionario.save(); session.get("usuarioLogado"); listarFuncionarios(null); } }
e a div reponsavel por capturar a imagem no html:
<div class="form-group"> <label>Adicionar foto do perfil:</label> <input type="file" name="funcionario.foto" class="form-control"> </div>