Pegando atributos com multipart/form-data

Galera, tenho o seguinte form em html pra fazer upload de arquivos:

[quote]


[/quote]

Agora, queria saber como faço pra pegar o nome do arquivo em uma Servlet, ja que request.getAtribute(“caminhoFoto”) me traz null. Tem como pegar o atributo?

Obrigado.

Essa action UploadsFotos é um servlet??
Se sim, tem como pegar nesse servlet…

Sim, é um servlet. Mas como eu pegaria no servlet?

Vê se chega assim lá no servlet:

String caminhoFoto = request.getParameter("caminhoFoto");

Mas é exatamente dessa forma que nao funciona, por causa do enc = multpart/form-data no html. Sem essa linha no html, ele nao funciona, mas se eu colocar ela, ai o request.getParameter me traz null. Algue sabe como eu faço pra resolver isso?

Obrigado.

Hmm… Intaum num sei se te ajudarei… Mas vai ai uma dica… Qndo o cara clikar em submit, dispara uma function em JS e grava o valor num campo hidden do tipo TEXT, dai eu acho que vc conseguira pegar como getatribute ou getparameter no modo multpart láá no servlet, pq pelo visto o servlet num ta enxergando o campo do tipo file…

Não deu certo =/
Ele tb nao ve campo hidden nem text

Qual seria a finalidade de vc guardar o caminho do arquivo do pc do cliente :?: :?: :?:
de uma olhada aki:
http://www.guj.com.br/posts/list/36444.java#193326

Com o form marcado como multipar, o buraco é mais em baixo. :smiley:

Vê se te ajuda.

private FileUpload fileUpload;

this.fileUpload = new FileUpload(request);

HashMap m = fileUpload.getMimeParts();

if(m.get("caminhoFoto") == null)
	return null;
else{
	MimeBodyPart part = (MimeBodyPart)m.get(nomeControle);
	return part.getDataAsString();
}

[]'s

Este FileUpload que vc utilizou é uma biblioteca ou uma classe criada por vc?

‘Deve’ ser isso:

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.io.FilenameUtils;

Jackarta FileUploads… ‘creio’ que deve ser…

Que “servicinho” eu fiz hein??? rsrsr

Na verdade são:

import com.blogspot.pontoflutuante.FileUpload;
import com.blogspot.pontoflutuante.MimeBodyPart;

Vc baixa em:
http://sourceforge.net/project/showfiles.php?group_id=43100&package_id=35371&release_id=234420

Desculpe a vergonha que eu passei.

[quote=hudson.paula]Que “servicinho” eu fiz hein??? rsrsr

Na verdade são:

import com.blogspot.pontoflutuante.FileUpload;
import com.blogspot.pontoflutuante.MimeBodyPart;

Vc baixa em:
http://sourceforge.net/project/showfiles.php?group_id=43100&package_id=35371&release_id=234420

Desculpe a vergonha que eu passei.[/quote]

kkk Q nada…

Mando bem!!

De boa

Na linha

MimeBodyPart part = (MimeBodyPart)m.get(nomeControle);

O que viria ser nomeControle?

nomeControle é o nome do campo (controle) na tela.

No seu caso, vc vai passar “caminhoFoto”.

De forma resumida Guto, tudo que antes vc obtinha via .getParameter() agora vc obtém assim.
Acessando um campo do Hashmap.

[]'s.

Então, dessa forma ele tb ta vindo null. É muito estranho.

Não tão simples assim obter o valor de campo que está em um form multipart/form-data.

Fonte: http://www.jguru.com/faq/view.jsp?EID=1045507

Deu certo, usei o apache file upload ^^

Guto_Magalhaes

O que você usou ???
Poem o seu controle e sua JSP , para qm ainda tiver essa duvida conseguir tirar :smiley: