Fiz o seguinte:
Meu jsp:
...
<label>Foto:</label>
<input type="file" name="foto" />
...
CdastroFuncionarioForm: (BeanForm)
...
private String caminhoFoto;
public String getCaminhoFoto() {
return caminhoFoto;
}
public void setCaminhoFoto(String foto) {
this.caminhoFoto = foto;
}
...
CadastroFuncionarioAction: (Ação do Struts)
CadastrarFuncionarioForm funcionarioForm = (CadastrarFuncionarioForm) form;
Funcionario funcionario = new Funcionario();
File file = new File(funcionarioForm.getCaminhoFoto());
FileInputStream fis = new FileInputStream(file);
byte[] bytes = new byte [(int) file.length()];
fis.read (bytes);
funcionario.setFoto(bytes);
Na minha entidade Funcionario coloquei os seguintes metodos:
...
@Column(name = "foto")
@Lob
private byte[] foto;
...
public byte[] getFoto() {
return foto;
}
public void setFoto(byte[] foto) {
this.foto = foto;
}
...
Aparece esse erro aqui, fazendo desse jeito:
javax.servlet.ServletException: java.lang.NullPointerException
java.lang.NullPointerException
java.io.File.(File.java:222)
catalogo.controle.actions.CadastrarFuncionarioAction.execute(CadastrarFuncionarioAction.java:40)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
Se alguem puder me ajudar a resolver esse problema e conseguir salvar a imagem direto no BD, eu acho que esta faltando eu pegar o caminho completo da imagem, mas enfim estou cheio de duvida pra fazer isso.