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?