Pessoal,
Estou tentando fazer um upload de um arquivo, transformando-o em bytes e inserindo no bd.
JSP:
<div id="novoAnexo" style="display: none">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr class="fPadrao">
<td><strong>Descrição</strong></td>
</tr>
<tr class="fPadrao">
<td><textarea name="descricao2" rows="5" wrap="VIRTUAL" id="descricao2" style="width: 100%"></textarea></td>
</tr>
<tr class="fPadrao">
<td><strong><br>Anexo:</strong></td>
</tr>
<tr class="fPadrao">
<td>
<input name="anexo" id="anexo" type="file"">
</td>
</tr>
<tr>
<td>
<div align="right">
<input type="button" name="Submit" value="Anexar" onClick="salvarAnexo(this.form)">
</div>
</td>
</tr>
</table>
<input name="data2" id="data2" type="hidden" value="<%=data==null?Util.getDate(0, "yyyy-MM-dd"):Util.formatDate(data, "yyyy-MM-dd")%>">
<input name="cliente2" id="cliente2" type="hidden" value="<%=ficha.getEmpresa() %>">
<input name="idCliente3" id="idCliente3" type="hidden" value="<%=ficha.getId()%>">
</div>
Javascript:
function salvarAnexo(form, id) {
form.action='Controller?cmd=salvaranexo&idCliente3='+form.idCliente3.value+
'&descricao2='+form.descricao2.value+
'&cliente2='+form.cliente2.value+
'&data2='+form.data2.value;
'&anexo='+form.anexo.value;
form.submit();
}
Java:
package br.com.cbcon.command;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.log4j.Logger;
import br.com.cbcon.application.Util;
import br.com.cbcon.bean.Anexo;
import br.com.cbcon.bean.Usuario;
import br.com.cbcon.dao.AnexoDAO;
import br.com.cbcon.dao.DAOFactory;
import br.com.imansolutions.webutil.FileUpload;
public class SalvarAnexo implements Command {
private Logger log = Util.getLogger(SalvarAnexo.class);
public Object execute(HttpServletRequest request, HttpServletResponse response) {
String descricao2 = request.getParameter("descricao2");
String idCliente3 = request.getParameter("idCliente3");
String cliente2 = request.getParameter("cliente2");
String data2 = request.getParameter("data2");
HttpSession session = request.getSession();
Usuario usuario = (Usuario)session.getAttribute("usuario");
String user = usuario.getLogin();
try {
FileUpload upload = new FileUpload(request);
String anexo = (String)upload.getParameter("anexo");
AnexoDAO aDAO = (AnexoDAO)DAOFactory.getDAO("Anexo");
Anexo anexo1 = new Anexo(data2, descricao2, upload.getByteArray("anexo"), cliente2, user, anexo);
System.out.println(anexo);
aDAO.insert(anexo1);
return "redirect:cmd=abrirfichaclientes&idCliente="+idCliente3;
} catch (Exception e) {
log.error(e.getMessage());
e.printStackTrace();
request.setAttribute("msg", e.getMessage());
return "error";
}
}
}
Select do insert:
public long insert(Object register) throws Exception {
Connection conn = null;
PreparedStatement pst = null;
ResultSet rs = null;
Anexo anexo = (Anexo)register;
try {
if (register == null)
throw new PoloException("Registro nulo");
conn = Pool.getConnection();
pst = conn.prepareStatement("INSERT INTO anexo (data, descricao, anexo, cliente, usuario, nome) VALUES(?,?,?,?,?,?)");
pst.setString(1, anexo.getData());
pst.setString(2, anexo.getDescricao());
pst.setBytes(3, anexo.getAnexo());
pst.setString(4, anexo.getCliente());
pst.setString(5, anexo.getUsuario());
pst.setString(6, anexo.getNome());
pst.executeUpdate();
rs = pst.getGeneratedKeys();
if (rs.next())
return rs.getLong(1);
} finally {
Util.freeResources(new Object[] { conn, pst, rs, register });
}
return 0;
}
Se alguém puder me ajudar eu agradeço.
Está dando problema quanto tenta fazer:
Anexo anexo1 = new Anexo(data2, descricao2, upload.getByteArray(“anexo”), cliente2, user, anexo);
Vinicius.