Não estou conseguindo buscar tópicos antigos usando a pesquisa do fórum :shock:
Vou ter que recorrer então a ajuda de vocês.Achei varios exemplos na internet de servlet para fazer upload, mas a maioria é upload de imagem, é o mesmo processo para fazer upload de uma imagem e de um arquivo de texto?
Alguem ai tem um exemplo de servlet, preciso fazer o upload pro servidor, e salvar(no banco de dados) o endereço que o arquivo está no servidor, para depois disponibilizá-lo para dowload.
Abraços e dê notícias do funcionamento (ou não). =)
R
RafaelViana
Sim, tambem vi dessa API da Apache, mas mesmo assim não consegui fazer funcionar direito Sei que estou abusando um pouquinho, mas se alguem tiver pronto é mais facil rsrs
A maioria que encontro na internet é upload de imagem, o upload é feito da mesma forma?Se for posso me basear nisso…
E
esqure
Uma classe que salvar o arquivo do navegado no servidor.
Se tiver duvida fala ai …
importjava.io.*;importjavax.servlet.http.*;importorg.apache.commons.fileupload.*;importorg.apache.commons.fileupload.disk.*;importorg.apache.commons.fileupload.servlet.*;importjava.util.*;publicclassRecebeFile{/** * CLASSE QUE USA DA API JAKARTA FILE UPLOAD * */privatestaticfinallongserialVersionUID=1L;privateHttpServletResponseres;publicRecebeFile(HttpServletRequestrequest){req=request;;}publicvoidGravaArquivo(StringSalvar)throwsIOException{/**<form enctype="multipart/form-data" method = "post" action = "upload"> *defina no form o tipo de enctype multipart * ***/booleanpodeRecuperar=ServletFileUpload.isMultipartContent(req);//se for um multiparif(podeRecuperar){DiskFileItemFactoryfabrica=newDiskFileItemFactory();fabrica.setRepository(newFile("."));FileItemFactoryfabItem=fabrica;ServletFileUploadupload=newServletFileUpload(fabItem);try{ListparseRequest=upload.parseRequest(req);for(Objecta:parseRequest){FileItemFils=(FileItem)a;if(!Fils.isFormField()){Filefile=newFile(Salvar);FileOutputStreamfos=newFileOutputStream(file);InputStreamis=Fils.getInputStream();byte[]buffer=newbyte[2048];intnLidos;while((nLidos=is.read(buffer))>=0){fos.write(buffer,0,nLidos);}fos.flush();fos.close();is.close();}}}catch(FileUploadExceptione){System.out.println(e.getLocalizedMessage());}catch(Exceptione){System.out.println(e.getLocalizedMessage());}}}}
C
celso.martins
Então Rafael, como eu disse, não encontrei ainda o projeto no qual eu uso essa bagaça. Estou tentando te ajudar garimpando na Internet para ver se encontro os mesmos caminhos que me fizeram acertar, cerca de 1 ano e meio atrás. Afinal, já coloquei essa joça para funcionar uma vez e pode ser que o caminho que eu faça seja menor.
Aonde está sendo passado o caminho da pasta que será salvo o arquivo que foi selecionado?
esqure:
Uma classe que salvar o arquivo do navegado no servidor.
Se tiver duvida fala ai ...
importjava.io.*;importjavax.servlet.http.*;importorg.apache.commons.fileupload.*;importorg.apache.commons.fileupload.disk.*;importorg.apache.commons.fileupload.servlet.*;importjava.util.*;publicclassRecebeFile{/** * CLASSE QUE USA DA API JAKARTA FILE UPLOAD * */privatestaticfinallongserialVersionUID=1L;privateHttpServletResponseres;publicRecebeFile(HttpServletRequestrequest){req=request;;}publicvoidGravaArquivo(StringSalvar)throwsIOException{/**<form enctype="multipart/form-data" method = "post" action = "upload"> *defina no form o tipo de enctype multipart * ***/booleanpodeRecuperar=ServletFileUpload.isMultipartContent(req);//se for um multiparif(podeRecuperar){DiskFileItemFactoryfabrica=newDiskFileItemFactory();fabrica.setRepository(newFile("."));FileItemFactoryfabItem=fabrica;ServletFileUploadupload=newServletFileUpload(fabItem);try{ListparseRequest=upload.parseRequest(req);for(Objecta:parseRequest){FileItemFils=(FileItem)a;if(!Fils.isFormField()){Filefile=newFile(Salvar);FileOutputStreamfos=newFileOutputStream(file);InputStreamis=Fils.getInputStream();byte[]buffer=newbyte[2048];intnLidos;while((nLidos=is.read(buffer))>=0){fos.write(buffer,0,nLidos);}fos.flush();fos.close();is.close();}}}catch(FileUploadExceptione){System.out.println(e.getLocalizedMessage());}catch(Exceptione){System.out.println(e.getLocalizedMessage());}}}}
P
Pacato
Amigo, ele está deixando na “memória” Stream, o arquivo…
Essa minha servlet, ela pega o arquivo e joga para uma classe (Upload) onde verifico o nome do arquivo, no meu caso EXCEL, depois vai para outra classe onde faço umas verificações para poder carregar na DAO (para enviar para o BD).
Ele tambem faz uma verificação do nome do arquivo (caminho) pois no IE tem um jeito e no Crhome tem outro… um pega o caminho completo do arquivo, outro pega só o nome, e já tem esse tratamento que vc iria se deparar…
packageservlet.br.com.simcard;importjava.io.File;importjava.io.IOException;importjava.io.PrintWriter;importjava.util.Iterator;importjava.util.List;importjavax.servlet.ServletException;importjavax.servlet.annotation.WebServlet;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;importorg.apache.commons.fileupload.FileItem;importorg.apache.commons.fileupload.FileItemFactory;importorg.apache.commons.fileupload.FileUploadException;importorg.apache.commons.fileupload.disk.DiskFileItemFactory;importorg.apache.commons.fileupload.servlet.ServletFileUpload;importbr.com.simcard.UploadTelecom;/** * * ♌ℜα₣α€£✡♁ * **/@WebServlet("/ServletUploadTelecom")publicclassServletUploadTelecomextendsHttpServlet{privatestaticfinallongserialVersionUID=1L;publicServletUploadTelecom(){super();}publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{}publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsIOException{response.setContentType("text/html");PrintWriterout=response.getWriter();booleanisMultipartContent=ServletFileUpload.isMultipartContent(request);if(!isMultipartContent){out.println("<html>");out.println("<head>");out.println("</head>");out.println("<body>");out.println("<center>");out.println("<br>");out.println("Erro no Nome do Arquivo<br/>");out.println("</center>");out.println("</body>");out.println("</html>");return;}FileItemFactoryfactory=newDiskFileItemFactory();ServletFileUploadupload=newServletFileUpload(factory);Filedir=newFile("arquivoUpload");if(dir.mkdir()){System.out.println("Diretório criado com sucesso!");}else{System.out.println("Erro ao criar ou diretório já criado!");}try{List<FileItem>fields=upload.parseRequest(request);Iterator<FileItem>it=fields.iterator();while(it.hasNext()){out.println("<tr>");FileItemfileItem=it.next();if(fileItem.getName()!=null){try{HttpSessionsession=request.getSession();Stringlogin=(String)session.getAttribute("loginUsuario");Stringcaminho=null;if(fileItem.getName().contains("\\")){Stringcaminho2=fileItem.getName().substring(fileItem.getName().lastIndexOf("\\")+1);FileuploadedFile=newFile("./arquivoUpload/"+caminho2);fileItem.write(uploadedFile);caminho="./arquivoUpload/"+caminho2;}else{// SE FOR IE PASSAR O CAMINHO QUE VIRA SÓ O NOME DO// AQRQUIVOFileuploadedFile=newFile("./arquivoUpload/"+fileItem.getName());fileItem.write(uploadedFile);caminho="./arquivoUpload/"+fileItem.getName();}if(newUploadTelecom().anexos(login,caminho,response)){out.println("<html>");out.println("<head>");out.println("</head>");out.println("<body>");out.println("<center>");out.println("<br>");out.println("Arquivo enviado com Sucesso!");out.println("</center>");out.println("</body>");out.println("</html>");}else{out.println("<html>");out.println("<head>");out.println("</head>");out.println("<body>");out.println("<center>");out.println("<br>");out.println("Erro ao enviar arquivo!<br><br> Nome e/ou Tipo Inválido(s)");out.println("</center>");out.println("</body>");out.println("</html>");}out.println("<html>");out.println("<head>");out.println("</head>");out.println("<body>");out.println("<center>");out.println("<br/>"+"<br/>"+"<br/>"+"<input type=\"button\" onclick=\"javascript: location.href='uploadArquivoTelecom.jsp';\" value=\"Voltar\" />");out.println("</center>");out.println("</body>");out.println("</html>");out.close();}catch(Exceptione){e.printStackTrace();}}}out.println("</table>");}catch(FileUploadExceptione){e.printStackTrace();out.println("<html>");out.println("<head>");out.println("</head>");out.println("<body>");out.println("<center>");out.println("<br>");out.println("Erro Interno");out.println("</center>");out.println("</body>");out.println("</html>");}out.println("<html>");out.println("<head>");out.println("</head>");out.println("<body>");out.println("<center>");out.println("<br>");out.println("Erro Interno");out.println("</center>");out.println("</body>");out.println("</html>");out.println("<html>");out.println("<head>");out.println("</head>");out.println("<body>");out.println("<center>");out.println("<br/>"+"<br/>"+"<br/>"+"<input type=\"button\" onclick=\"javascript: location.href='uploadArquivoTelecom.jsp';\" value=\"Voltar\" /> ");out.println("</center>");out.println("</body>");out.println("</html>");out.close();}}