Olá pessoal, eu queria registrar uma imagem no banco, no caso eu estou usando o Oracle 10g.
Ou vi falar de um Tipo BLOB, mas o Controller não está conseguindo pegar o arquivo como parametro.
Qual a vantagem do BLOB?
E se salvar o caminho da foto e colocar como String, qual caminho eu colocaria, o caminho da pasta no servidor ou da pasta do usuário ?
Meu JSP
<h2>Página de Registro das Contas</h2> <form action="efetuaRegistro" method="post"> Nome : <input type="text" name="nome" /> <br /> Sobrenome: <input type="text" name="sobrenome" /> <br /> Login: <input type="text" name="login" /> <br /> Senha: <input type="text" name="senha" /> <br /> Imagem: <input type="file" name="foto" /> <input type="submit" value="Entrar nas contas" /> </form>
Meu Controller :
` @RequestMapping(value="/efetuaRegistro")
public String efetuaRegistro(String login , String senha , String nome , String sobrenome, BLOB imagem ) throws SecurityException, HeuristicMixedException, HeuristicRollbackException, RollbackException, SystemException{
UsuarioDao usuariodao = new UsuarioDao();
usuariodao.adiciona(login,senha,nome,sobrenome, imagem);
return "usuarioLogado/usuarioLogado";
}`
Meu Usuario :
@Basic @Lob @Column(name="USUA_FOTO") BLOB imagem;
Meu UsuarioDao
`@Repository
public class UsuarioDao {
public void adiciona(String login , String senha , String nome , String sobrenome, BLOB imagem) throws SecurityException, HeuristicMixedException, HeuristicRollbackException, RollbackException, SystemException{
Usuario usuario = new Usuario();
usuario.setNome(nome);
usuario.setSobrenome(sobrenome);
usuario.setImagem(imagem);
usuario.setLogin(login);
usuario.setSenha(senha);
usuario.setHabilitado(true);
SessionFactory factory = new Configuration().configure().buildSessionFactory();
Session session = factory.openSession();
session.beginTransaction();
session.save(usuario);
session.getTransaction().commit();
session.close();
}`