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.
Maek
Janeiro 2, 2009, 12:53pm
#2
Essa action UploadsFotos é um servlet??
Se sim, tem como pegar nesse servlet…
Sim, é um servlet. Mas como eu pegaria no servlet?
Maek
Janeiro 2, 2009, 2:14pm
#4
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.
Maek
Janeiro 2, 2009, 2:35pm
#6
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
Maek
Janeiro 2, 2009, 3:17pm
#8
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.
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?
Maek
Janeiro 2, 2009, 3:57pm
#11
‘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.
Maek
Janeiro 2, 2009, 4:05pm
#13
[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!!
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