Gravar imagem no MySQL via JSP  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
motaboyrsPJ
Smalltalk
[Avatar]

Membro desde: 03/12/2006 00:00:00
Mensagens: 2
Offline

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:

Controlador é um servlet que tem este código quando a opção é incluirProduto:


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
[WWW] [ICQ]
denis_arrudaPJ
JavaEvangelist
[Avatar]

Membro desde: 18/03/2004 00:00:00
Mensagens: 460
Offline

Aqui no portaljava na seçao tutoriais > Diversos.. tem um material sobre isso

[WWW] [ICQ]
TaquetePJ
Smalltalk
[Avatar]

Membro desde: 22/09/2006 00:00:00
Mensagens: 4
Offline

Aí meu caro,

é um esqueminha meio de pedreiro mas eu usei e funcionou, no enctype vc coloca "multipart/form-data" e os parâmetros normais ... vc monta uma string em javascript e passa no submit do formulário:

function submit(){
var url = 'cad.jsp?p1='+window.document.parametro.vs_para.value;
window.document.parametro.action = url;
window.document.parametro.submit();
}

Dessa maneira vc consegue pegar os parâmetros normais e o parâmetro da imagem:

boolean isMultipart = FileUpload.isMultipartContent(request);

DiskFileUpload upload = new DiskFileUpload();
// Define o tamanho máximo do anexo 100Kb
upload.setSizeMax(1024*100);

List items = upload.parseRequest(request);

Iterator itr = items.iterator();

String nome = "";
String extensao;
while(itr.hasNext()){
FileItem item = (FileItem) itr.next();

if(!item.isFormField()){
if(item.getName().length()>0){
File fullFile = new File(item.getName());
nome = fullFile.getName();

...
}
}
}


Espero que tenha te ajudado
[WWW] [ICQ]
motaboyrsPJ
Smalltalk
[Avatar]

Membro desde: 03/12/2006 00:00:00
Mensagens: 2
Offline

Taquete, valeu pela dica, mas não consegui fazer funcionar..Se eu coloco como multipart/form-data ele não grava nem o resto dos dados, simplesmente ignora a chamada...
Vendo o request.getContentType() ele me retorna: "multipart/form-data; boundary"...e uns números...e daí nem entra onde deveria...

denis, eu dei uma lida no tutorial, só que eu fiz exatamente com está descrito ali, exceto pelo fato de ele ter feito com que gravasse no BD numa página JSP, eu fiz em um Servlet, mas não funcionou também...

Se tiverem outras idéias..."Fazemos qualquer negócio"(com JAVA...hehehe)...

Abraços
[WWW] [ICQ]
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team