Olá pessoal estou iniciando com o desenvolvimento web e queria saber como eu farei para colocar um botão onde ao clicar o usuário deverá escolher uma imagem do seu computador. Acho que não é com o JDialog, certo? pelo menos não consegui fazer assim!
Vale lembrar estou usando o Google App Engine e sua SDK e plugin para o eclipse.
Brigadão
Não pode ser um input file?
Ele abre uma tela para você escolher um arquivo, não somente imagem, ai é preciso realizar o upload dessa imagem na parte server da sua programação, caso sirva, use
<input type=“file” name=“arquvo”>
Att
guisantogui
Ok, o campo apareceu, mas agora não consigo pegar o arquivo que eu enviei, segue a minha servlet e a minha JSP:
Servlet:
packageapplication;importjava.io.IOException;importjava.util.Date;importjava.util.logging.Logger;importjavax.jdo.PersistenceManager;importjavax.servlet.http.*;importjavax.swing.JOptionPane;importapplication.Greeting;importapplication.PMF;importcom.google.appengine.api.users.User;importcom.google.appengine.api.users.UserService;importcom.google.appengine.api.users.UserServiceFactory;publicclassSignGuestbookServletextendsHttpServlet{privatestaticfinalLoggerlog=Logger.getLogger(SignGuestbookServlet.class.getName());publicvoiddoPost(HttpServletRequestreq,HttpServletResponseresp)throwsIOException{UserServiceuserService=UserServiceFactory.getUserService();Useruser=userService.getCurrentUser();Stringcontent=req.getParameter("content");Objectbj=req.getParameter("img");System.out.println(bj);if(!content.isEmpty()){Datedata=newDate();Greetingg=newGreeting(user,content,data);PersistenceManagerpm=PMF.get().getPersistenceManager();try{pm.makePersistent(g);}finally{pm.close();}}else{}if(user!=null){log.info("Greeting posted by user "+user.getNickname()+": "+content);}else{log.info("Greeting posted anonymously: "+content);}resp.sendRedirect("guestbook.jsp");}}
Desculpem as possíveis gambiarras, mas sou novato na programação pra Web.
rodrigo.manfre
Quando você utiliza input do tipo file, o seu form tem que ser um atributo específico que o enctype=“multipart/form-data” senão o arquivo não vai no seu submit.
Um detalhe no seu código do jsp é que o input file tem que ficar dentro do form, algo como esse código:
Então, acho que detectei outro problema ao colocar este campo na JSP eu preciso de um form específico para ele, certo?
Pois estou colocando juntamente em um form com um campo de texto e está dizendo que o campo está nulo, sendo que não esta!
A Pergunta é, tenho que deixar um form específico para o upload do arquivo ou tem como integrar em outro form? (Sem ter que clicar no botão “Enviar arquivo” e depois “Enviar mensagem”)
Brigadão.
rodrigo.manfre
Não precisa ser um específico não, basta os campos estarem dentro do form que todos eles vão ser enviados, o único detalhe é que você tem que acrescentar enctype=“multipart/form-data” na sua tag <form> para poder enviar o arquivo.
Talvez vc tenha que usar o fileUpload do jakarta commons para recuperar os outros dados, da uma olhada no código que tem nesse link, http://javafree.uol.com.br/topic-850330-Problemao-enctype=multipart-formdata.html
guisantogui
Bah cara, não me acertei com esse jankra aí, tava tentando subir a imagem em uma servlet diferente, mas sempre que tento o valor retorna nulo e não sei por que, fica o código:
Cara, seu input está não errado, não sei se é isso, mas é um erro:
Troque isso: <input type=“file” name=“greetingImage” value=“img” name=“img”>
Por isso: <input type=“file” name=“greetingImage” name=“img”>
Você está passando o valor img na propriedade value, assim o valor não vai mesmo, e o nome do atributo que vc tem que recuperar na tua servlet é a propriedade name do input ou seja greetingImage, vc está recuperando img, tenta ai