Olá.
Eu estou fazendo uma página para cadastrar produtos com suas respectivas fotos, no entanto, não estou conseguindo gravar uma imagem num bd MySQL(é pra um trabalho da faculdade, o professor não quer que grave a imagem em disco). Estou usando a lib org.apache.commons.fileupload .
O código do FORM onde estão os campos do cadastro:
<FORM method="post" action="Controlador" onSubmit="return validar(this);" enctype="multipart/mixed">
<TABLE border=0>
<TR>
<TD>Foto:</TD>
<TD><INPUT type="file" name="foto"/></TD>
</TR>
<TR>
<TD colspan="2" align=middle>
<INPUT type="Submit" value="Salvar" />
<INPUT type="reset" value="Limpar" />
</TD>
</TR>
</TABLE>
<INPUT type="hidden" name="opcao" value="incluirProduto">
</FORM>
Controlador é um servlet que tem este código quando a opção é incluirProduto:
try {
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List items = upload.parseRequest(request); //<----
Iterator iter = items.iterator();
if(iter.hasNext()) {
FileItem item = (FileItem) iter.next();
byte[] imagem = item.get();
Produto produto = new Produto();
produto.setImagem(idPro, imagem);
}
}
catch(Exception e) {
System.out.println("Erro ao salvar imagem: " + e.getMessage());
}
Ali onde tem uma flecha apontando - “List items…” dá o seguinte erro:
the request doesn’t contain a multipart/form-data or multipart/mixed stream, content type header is null
Só que eu estou passando o enctype no FORM como multipart/mixed, acho que não deveria dar este erro.
Se alguém souber qual o problema, por favor, me avisem, preciso entregar este trabalho na Quinta-Feira.
E se tiverem outra sugestão de como gravar uma imagem num banco de dados MySQL sem gravar em disco, podem postar que vou ver…
Obrigado
