| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/12/2006 13:15:55
|
motaboyrsPJ
Smalltalk
![[Avatar]](/images/avatar/0)
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
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/12/2006 09:31:39
|
denis_arrudaPJ
JavaEvangelist
![[Avatar]](/images/avatar/1)
Membro desde: 18/03/2004 00:00:00
Mensagens: 460
Offline
|
Aqui no portaljava na seçao tutoriais > Diversos.. tem um material sobre isso
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/12/2006 09:42:44
|
TaquetePJ
Smalltalk
![[Avatar]](/images/avatar/0)
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
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/12/2006 19:53:41
|
motaboyrsPJ
Smalltalk
![[Avatar]](/images/avatar/0)
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
|
|
|
 |
|
|
|
|