Gravar imagem no BD

5 respostas
java
jairodione

Olá Pessoal!

Estou desenvolvendo um sistema e nele tenho um cadastro de usuários, e desejo utilizar neste cadastro a imagem do mesmo, consegui pegar a imagem e mostrar no formulário mas não consigo gravar no BD. Abaixo esta descrito as linhas de código que fiz.
Model está assim:

private String usuario;
    private String senha;
    private int nivel;
    private String nomeCompleto;
    private String foto;

    /**
     * @return the usuario
     */
    public String getUsuario() {
        return usuario;
    }

    /**
     * @param usuario the usuario to set
     */
    public void setUsuario(String usuario) {
        this.usuario = usuario;
    }

    /**
     * @return the senha
     */
    public String getSenha() {
        return senha;
    }

    /**
     * @param senha the senha to set
     */
    public void setSenha(String senha) {
        this.senha = senha;
    }

    /**
     * @return the nivel
     */
    public int getNivel() {
        return nivel;
    }

    /**
     * @param nivel the nivel to set
     */
    public void setNivel(int nivel) {
        this.nivel = nivel;
    }

    /**
     * @return the nomeCompleto
     */
    public String getNomeCompleto() {
        return nomeCompleto;
    }

    /**
     * @param nomeCompleto the nomeCompleto to set
     */
    public void setNomeCompleto(String nomeCompleto) {
        this.nomeCompleto = nomeCompleto;
    }

    /**
     * @return the foto
     */
    public String getFoto() {
        return foto;
    }

    /**
     * @param foto the foto to set
     */
    public void setFoto(String foto) {
        this.foto = foto;
    }

DAO está assim:

//metodo para incluir usuario
    public void novoUsuario(Usuarios usuarios) throws SQLException {
        String sql = "insert into usuarios values (?,?,?,?,?)";
        PreparedStatement ps = null;
        try {
            ps = connection.prepareStatement(sql);
            ps.setString(1, usuarios.getUsuario());
            ps.setString(2, usuarios.getSenha());
            ps.setInt(3, usuarios.getNivel());
            ps.setString(4, usuarios.getNomeCompleto());
            ps.setString(5, usuarios.getFoto());
            ps.execute();
        } catch (SQLException ex) {
            Logger.getLogger(UsuarioDAO.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            connection.close();
            ps.close();
        }
    }

O Servlet esta assim:

        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();

        RequestDispatcher rd = null;

        String usuario = request.getParameter("usuario");
        String senha = request.getParameter("senha");
        String nivel = request.getParameter("nivel");
        String nomeCompleto = request.getParameter("nomecompleto");
        String foto = request.getParameter("foto");

        Usuarios usuarios = new Usuarios();
        usuarios.setUsuario(usuario);
        usuarios.setSenha(senha);
        if(nivel != null)
            usuarios.setNivel(Integer.parseInt(nivel));
        usuarios.setNomeCompleto(nomeCompleto);
        usuarios.setFoto(foto);

        UsuarioDAO usuarioDAO = new UsuarioDAO();

        //Verificar qual é a ação
        String acao = request.getParameter("acao");

        if (acao == null) {
            acao = "listarUsuario";
        }

        if (acao.equals("alterar")) {
            usuarioDAO.alteraUsuario(usuarios);
            rd = request.getRequestDispatcher("/UsuarioCRUD?acao=listarUsuario");
        } else if (acao.equals("excluir")) {
            usuarioDAO.excluiUsuario(usuarios);
            rd = request.getRequestDispatcher("/UsuarioCRUD?acao=listarUsuario");
        } else if (acao.equals("listarUsuario")) {
            int numPagina = 1;
            if (request.getParameter("numpagina") != null) {
                numPagina = Integer.parseInt(request.getParameter("numpagina"));
            }
            try{

                String ordenacao = request.getParameter("ordenacao");
                if(ordenacao == null)
                    ordenacao = "usuario";

                String pesquisa = request.getParameter("pesquisa");
                if(pesquisa == null)
                    pesquisa = "";

                String campopesquisa = request.getParameter("campopesquisa");
                if(campopesquisa == null)
                    campopesquisa="usuario";
                
                List listaUsuarios = usuarioDAO.getListaUsuarioPaginado(numPagina, ordenacao, pesquisa, campopesquisa);
                String qtdTotalRegistros = usuarioDAO.totalRegistros(pesquisa, campopesquisa);
                request.setAttribute("sessaoListaUsuarios", listaUsuarios);
                request.setAttribute("sessaoQtdTotalDeRegistros", qtdTotalRegistros);
                rd = request.getRequestDispatcher("/listausuarios.jsp");
            }catch(SQLException ex){
                Logger.getLogger(UsuarioCRUD.class.getName()).log(Level.SEVERE, null, ex);
            }
        }else if (acao.equals("novo")) {
            usuarioDAO.novoUsuario(usuarios);
            rd = request.getRequestDispatcher("/UsuarioCRUD?acao=listarUsuario");
        }

        rd.forward(request, response);

O arquivo JSP está assim "apenas o trecho onde está ocorrendo o problema":

div class="campos">
                label for="foto">Foto:</label>
                input type="text" name="usufoto" id="usufoto" size="50" maxlength="50" />
                img alt="Sem Foto" name="mostrafoto" id="mostrafoto"/><br/><br/>
                input type="file" name="pegafoto" id="pegafoto" />
            /div><br>
            <input type="submit" name="acao" value="novo" />

O arquivo JSTL "apenas o trecho onde está ocorrendo o problema":

          out.println("<table border='1'>");
            out.println("<form action='UsuarioCRUD' method='get'>");
            out.println("<tr><td colspan='6'>Localizar por: ");
            out.println("<select name='campopesquisa'>");
            if(campopesquisa.equals("usuario"))
                out.println("<option value='usuario' selected='selected'>Usuario</option>");
            else
                out.println("<option value='usuario'>Usuario</option>");
            if(campopesquisa.equals("nivel"))
                out.println("<option value='nivel' selected='selected'>Nivel</option>");
            else
                out.println("<option value='nivel'>Nivel</option>");
            if(campopesquisa.equals("nomecompleto"))
                out.println("<option value='nomecompleto' selected='selected'>Nome Completo</option>");
            else
                out.println("<option value='nomecompleto'>Nome Completo</option>");
            out.println("</select>");
            out.println("<input type='text' name='pesquisa' value='" + pesquisa + "' />");
            out.println("<input type='image' src='imagens/localizar.png' /></td></tr>");
            out.println("</form>");
            out.println("<tr><td colspan='3'><a href='usuariounico.jsp?acao=novo'><b>Novo Usuario</b></a></td><td colspan='3'><b>Ordenado por: " + ordenacao + "</b></td></tr>");
            out.println("<tr class='linhaEspecialTable'>");
            out.println("<td align='center'><a href='UsuarioCRUD?campopesquisa="+campopesquisa+"&pesquisa=" + pesquisa + "&acao=listarUsuario&ordenacao=usuario&numpagina=" + Integer.parseInt(numPagina) + "'>Usuario</a></td><td align='center'>Senha</td><td align='center'><a href='UsuarioCRUD?campopesquisa="+campopesquisa+"&pesquisa=" + pesquisa + "&acao=listarUsuario&ordenacao=nivel&numpagina=" + Integer.parseInt(numPagina) + "'>Nivel</a></td><td align='center'><a href='UsuarioCRUD?campopesquisa="+campopesquisa+"&pesquisa=" + pesquisa + "&acao=listarUsuario&ordenacao=nomecompleto&numpagina=" + Integer.parseInt(numPagina) + "'>Nome Completo</a></td><td align='center'>Alterar</td><td align='center'>Excluir</td>");
            out.println("</tr>");

            //while (rs.next()) {
            for (java.util.Iterator iterator = listaDeUsuarios.iterator(); iterator.hasNext();) {
                br.com.jairo.modelo.Usuarios usuarios = (br.com.jairo.modelo.Usuarios) iterator.next();
                out.println("<tr>");
                String usuario1 = usuarios.getUsuario();
                String senha1 = usuarios.getSenha();
                String nivel = String.valueOf(usuarios.getNivel());
                String nomeCompleto = usuarios.getNomeCompleto();
                String usuFoto = usuarios.getFoto();
                out.println("<td>" + usuario1 + "</td>");
                out.println("<td>" + senha1 + "</td>");
                out.println("<td>" + nivel + "</td>");
                out.println("<td>" + nomeCompleto + "</td>");
                out.println("<td><div align='center'><a href='usuariounico.jsp?acao=alterar&usuario=" + usuario1 + "&senha=" + senha1 + "&nivel=" + nivel + "&nomecompleto=" + nomeCompleto + "&foto=" + usuFoto + "'><img src='imagens/altera.png' alt='Altera'></a></div></td>");
                out.println("<td><div align='center'><a href='UsuarioCRUD?numpagina=" + Integer.parseInt(numPagina) + "&campopesquisa="+campopesquisa+"&pesquisa=" + pesquisa + "&acao=excluir&usuario=" + usuario1 + "'><img src='imagens/delete.png' alt='Delete'></a></div></td>");
                out.println("</tr>");
                //out.println("Usuario: " + rs.getString("usuario") + ", Senha: " + rs.getString("senha")
                //      + ", Nivel: " + rs.getInt("nivel") + ", Nome Completo: " + rs.getString("nomecompleto") + "<br>");
            }
A função JavaScript que fiz para mostrar a foto no formulario:

function atualizaFoto(){
    var fotoDigitada = document.forms['formUsuario']['usufoto'].value;
    document.forms['formUsuario']['mostrafoto'].src = "imagens/"+fotoDigitada;
}
function fileFoto(){
    var pegaFileFoto = document.forms['formUsuario']['pegafoto'].value;
    document.forms['formUsuario']['usufoto'].value = pegaFileFoto;
    atualizaFoto();
}
window.onload = function(){
    document.forms['formUsuario']['usufoto'].oninput = atualizaFoto;
    document.forms['formUsuario']['pegafoto'].onblur = fileFoto;
}

Alguem pode me ajudar?

5 Respostas

Felipe_Miranda

poste o erro do console…

C

Mas ai você está gravando uma string

jairodione

Olá Felipe Miranda!

Já consegui localizar o erro, e fiz a seguinte correção no arquivo JSP:

Estava desta forma:

<input type="text" name="usufoto" id="usufoto">

Alterei o trecho de codigo para ficar desta forma:

<input type="text" name="foto" id="foto">

Valeu!

jairodione

Olá cbcarlos07!

Olá Felipe Miranda!

Já consegui localizar o erro, e fiz a seguinte correção no arquivo JSP:

Estava desta forma:

<input type="text" name="usufoto" id="usufoto">

Alterei o trecho de codigo para ficar desta forma:

<input type="text" name="foto" id="foto">

Valeu!

C

Legal!

Criado 13 de agosto de 2016
Ultima resposta 15 de ago. de 2016
Respostas 5
Participantes 3