GUJ
Notícias, artigos e o maior fórum brasileiro sobre Java
home
fórum
notícias
tópicos recentes
empregos
artigos
Bem-vindo ao GUJ.
Crie seu login
, ou digite-o para logar no site.
Usuário:
Senha:
Erro com upload
Índice dos Fóruns
»
Desenvolvimento Web
Autor
Mensagem
06/02/2008 12:26:24
Assunto:
Erro com upload
febeckers
Virtual Machine Man
Membro desde: 23/01/2007 16:12:50
Mensagens: 588
Localização: Curitiba - PR
Offline
pessoal estou tentando fazer um upload usando a commons.fileupload da jakarta peguei um código aqui do guj mesmo mas esta me retornando um erro:
upload.jsp
<%@ page import="org.apache.commons.fileupload.*, java.util.List, java.io.File, java.util.Iterator" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title></title> </head> <body> <% // first check if the upload request coming in is a multipart request boolean isMultipart = FileUpload.isMultipartContent(request); DiskFileUpload upload = new DiskFileUpload(); upload.setSizeMax(1024*1024*3); // 3 Mb // parse this request by the handler // this gives us a list of items from the request List items = upload.parseRequest(request); Iterator itr = items.iterator(); while(itr.hasNext()) { FileItem item = (FileItem) itr.next(); // check if the current item not is a form field or an uploaded file if(!item.isFormField()) { // the item must be an uploaded file save it to disk. Note that there // seems to be a bug in item.getName() as it returns the full path on // the client's machine for the uploaded file name, instead of the file // name only. To overcome that, I have used a workaround using // fullFile.getName(). File fullFile = new File(item.getName()); String nome = fullFile.getName();//pega o nome do arquivo String extensao=nome.substring(nome.length()-3,nome.length());//pega a estenção do arquivo out.println(nome+"<br>"); out.println(extensao+"<br>"); if (extensao.equalsIgnoreCase("JPG")) {//só envia se for JPG File savedFile = new File(getServletContext().getRealPath("/ola/"),fullFile.getName()); item.write(savedFile); } else { out.println("Não enviando. Use apenas JPG"); } } } %> </body> </html>
mas esta me dando o seguinte erro:
org.apache.jasper.JasperException: An exception occurred processing JSP page /administrativo/cad_banners/upload.jsp at line 22 19: upload.setSizeMax(1024*1024*3); // 3 Mb 20: // parse this request by the handler 21: // this gives us a list of items from the request 22: List items = upload.parseRequest(request); 23: 24: Iterator itr = items.iterator(); 25: Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:524) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:417) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266) javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
se alguem puder me ajudar!
Abraços
Site
http://www.fernandobecker.com.br
Resumo de novela
06/02/2008 12:57:30
Assunto:
Re:Erro com upload
ramilani12
GUJ Master
Membro desde: 11/03/2005 01:23:30
Mensagens: 1944
Localização: Curitiba-PR
Offline
Ao invés de usar DiskFileUpload utilize ServletFileUpload
// Create a factory for disk-based file items DiskFileItemFactory factory = new DiskFileItemFactory(); // Set factory constraints factory.setSizeThreshold(1); // Create Temp Repository File fileTemp = new File("C:\\Temp"); factory.setRepository(fileTemp); // Create a new file upload handler ServletFileUpload upload = new ServletFileUpload(factory); // Set overall request size constraint in bytes upload.setSizeMax(4000000); // Parse the request
my delicious
|
follow me
|
linkedin
06/02/2008 13:09:39
Assunto:
Erro com upload
febeckers
Virtual Machine Man
Membro desde: 23/01/2007 16:12:50
Mensagens: 588
Localização: Curitiba - PR
Offline
Tenho que baixar alguma outra lib pois esta me dando esse erro:
org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 10 in the jsp file: /administrativo/cad_banners/upload.jsp DiskFileItemFactory cannot be resolved to a type 7: boolean isMultipart = FileUpload.isMultipartContent(request); 8: if (isMultipart) { 9: // Create a new file upload handler 10: DiskFileItemFactory factory = new DiskFileItemFactory(); 11: upload.setSizeThreshold(1); 12: File fileTemp = new File("C:\\Temp"); 13: An error occurred at line: 10 in the jsp file: /administrativo/cad_banners/upload.jsp DiskFileItemFactory cannot be resolved to a type 7: boolean isMultipart = FileUpload.isMultipartContent(request); 8: if (isMultipart) { 9: // Create a new file upload handler 10: DiskFileItemFactory factory = new DiskFileItemFactory(); 11: upload.setSizeThreshold(1); 12: File fileTemp = new File("C:\\Temp"); 13: An error occurred at line: 11 in the jsp file: /administrativo/cad_banners/upload.jsp upload cannot be resolved 8: if (isMultipart) { 9: // Create a new file upload handler 10: DiskFileItemFactory factory = new DiskFileItemFactory(); 11: upload.setSizeThreshold(1); 12: File fileTemp = new File("C:\\Temp"); 13: 14: // Set upload parameters An error occurred at line: 18 in the jsp file: /administrativo/cad_banners/upload.jsp ServletFileUpload cannot be resolved to a type 15: factory.setSizeMax(50*1024*1024); //50Mb 16: factory.setRepositoryPath("c:/temp"); 17: factory.setRepository(fileTemp); 18: ServletFileUpload upload = new ServletFileUpload(factory); 19: upload.setSizeMax(4000000); 20: // Parse the request 21: //List items = upload.parseRequest(request); An error occurred at line: 18 in the jsp file: /administrativo/cad_banners/upload.jsp ServletFileUpload cannot be resolved to a type 15: factory.setSizeMax(50*1024*1024); //50Mb 16: factory.setRepositoryPath("c:/temp"); 17: factory.setRepository(fileTemp); 18: ServletFileUpload upload = new ServletFileUpload(factory); 19: upload.setSizeMax(4000000); 20: // Parse the request 21: //List items = upload.parseRequest(request);
This message was edited 1 time. Last update was at 06/02/2008 13:10:24
Abraços
Site
http://www.fernandobecker.com.br
Resumo de novela
06/02/2008 13:19:00
Assunto:
Re:Erro com upload
ramilani12
GUJ Master
Membro desde: 11/03/2005 01:23:30
Mensagens: 1944
Localização: Curitiba-PR
Offline
A biblioteca commons-fileupload esta no seu WEB-INF/lib?
my delicious
|
follow me
|
linkedin
06/02/2008 13:32:17
Assunto:
Erro com upload
febeckers
Virtual Machine Man
Membro desde: 23/01/2007 16:12:50
Mensagens: 588
Localização: Curitiba - PR
Offline
sim e as classes estao todas la...
estou importando assim: org.apache.commons.fileupload.*
Abraços
Site
http://www.fernandobecker.com.br
Resumo de novela
09/07/2010 18:47:07
Assunto:
Re:Erro com upload
dsayron
Smalltalk
Membro desde: 29/06/2010 22:55:10
Mensagens: 2
Offline
Estou levantando esse post para não abrir outro com o mesmo assunto e porque ainda não foi respondido.
Estou com o mesmo problema do amigo acima.
O erro é manifestado pela linha "List items = upload.parseRequest(request);"
O erro no apache:
exception
javax.servlet.ServletException: Servlet execution threw an exception
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
root cause
java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream
org.apache.commons.fileupload.disk.DiskFileItemFactory.createItem(DiskFileItemFactory.java:196)
org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:35
org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126)
servlets.ServletUpload.doGet(ServletUpload.java:69)
servlets.ServletUpload.doPost(ServletUpload.java:54)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
root cause
java.lang.ClassNotFoundException: org.apache.commons.io.output.DeferredFileOutputStream
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
org.apache.commons.fileupload.disk.DiskFileItemFactory.createItem(DiskFileItemFactory.java:196)
org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:35
org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126)
servlets.ServletUpload.doGet(ServletUpload.java:69)
servlets.ServletUpload.doPost(ServletUpload.java:54)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
10/07/2010 19:22:39
Assunto:
Re:Erro com upload
ramilani12
GUJ Master
Membro desde: 11/03/2005 01:23:30
Mensagens: 1944
Localização: Curitiba-PR
Offline
Ola, vc precisa da lib commons-io
http://commons.apache.org/io/
my delicious
|
follow me
|
linkedin
11/07/2010 12:41:04
Assunto:
Re:Erro com upload
dsayron
Smalltalk
Membro desde: 29/06/2010 22:55:10
Mensagens: 2
Offline
Ramilani12, meu garoto, quer uma massagem no ego?
Você é o melhor!!!
Valeu, resposta curta; resultado imediato.
Por mim, tá dado como resolvido.
Antes que alguém me peça, lá vai o código:
package servlets; import com.mysql.jdbc.Blob; import java.sql.*; import com.mysql.jdbc.Connection; import com.mysql.jdbc.PreparedStatement; import java.io.IOException; import java.io.PrintWriter; import java.util.Iterator; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.swing.ImageIcon; import org.apache.commons.fileupload.servlet.ServletFileUpload; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.FileItemFactory; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileUpload; import org.apache.commons.fileupload.FileUploadException; public class ServletUpload extends HttpServlet { Connection conexao = null; public void init() throws ServletException { doConnect(); } public void doConnect(){ String enderecoDB = "jdbc:mysql://localhost:3306/blueshooter"; try { Class.forName("com.mysql.jdbc.Driver"); conexao = (Connection) DriverManager.getConnection(enderecoDB,"root","1"); } catch (ClassNotFoundException ex) { Logger.getLogger(ServletUpload.class.getName()).log(Level.SEVERE, null, ex); } catch (SQLException ex) { Logger.getLogger(ServletUpload.class.getName()).log(Level.SEVERE, null, ex); } } //Process the HTTP Post request public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } //Process the HTTP Get request public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { boolean isMultiPart = FileUpload.isMultipartContent(request); //<-Deprecated, mas funciona. if (isMultiPart) { FileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); String formulario = ""; try { //O ERRO ERA AQUI!!! List items = upload.parseRequest(request); Iterator iter = items.iterator(); while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); if (item.getFieldName().equals("tipoForm")) { formulario = item.getString(); } if (!item.isFormField()) { if (item.getName().length() > 0) { this.inserirImagem(item); } } } }catch (FileUploadException ex) { System.out.println(ex); ex.printStackTrace(); }catch (Exception ex) { System.out.println(ex); ex.printStackTrace(); } } } /** * @param item FileItem, representa um arquivo que é enviado pelo formulario * MultiPart/Form-data * @throws IOException * @throws ServletException */ private void inserirImagem(FileItem item) { PreparedStatement declaracao = null; //bImagem é um campo LONGBLOB. String sql = "INSERT INTO midia (iId,sDescricao, bImagem) VALUES(null,?, ?)"; try { //declaracao = conexao.prepareStatement(sql); declaracao = (PreparedStatement) conexao.prepareStatement(sql); declaracao.setString(1, "imagem.bmp"); //descrição declaracao.setBinaryStream(2, item.getInputStream(), (int) item.getSize() ); declaracao.executeUpdate(); } catch (SQLException ex) { ex.printStackTrace(); } catch (Exception ex) { ex.printStackTrace(); } } public ImageIcon recuperaImagem() { Statement declaracao = null; ResultSet resultado = null; StringBuffer sql = new StringBuffer(); sql.append("SELECT imagem FROM midia WHERE iId = 1"); ImageIcon imagem = null; try { declaracao = conexao.createStatement(); resultado = declaracao.executeQuery(sql.toString()); if (resultado.next()) { Blob blob = (Blob) resultado.getBlob("bImagem"); if (blob!=null){ imagem = new ImageIcon(blob.getBytes(1,(int) blob.length())); } } } catch (SQLException ex) { ex.printStackTrace(); } catch (Exception ex) { ex.printStackTrace(); } return imagem; } protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); } }
12/07/2010 11:09:57
Assunto:
Re:Erro com upload
ramilani12
GUJ Master
Membro desde: 11/03/2005 01:23:30
Mensagens: 1944
Localização: Curitiba-PR
Offline
Opa, legal!
my delicious
|
follow me
|
linkedin
Índice dos Fóruns
»
Desenvolvimento Web
Ir para:
Selecione um Fórum
Notícias
Assuntos gerais (Off-topic)
MundoJ - Artigos, Notícias e Debates
Artigos e Tutoriais
Java Básico
Java Avançado
Ferramentas, Frameworks e Utilitários
Desenvolvimento Web
Interface Gráfica
Google Android e Java Micro Edition (ME)
Certificação Java
Persistência: Hibernate, JPA, JDBC e outros
Java Enterprise Edition (Java EE)
Frameworks e Bibliotecas brasileiros
RIA - Flex, JavaFX e outros
Arquitetura de Sistemas
Metodologias de Desenvolvimento e Testes de Software
JavaScript
Ruby & Ruby on Rails
Outras Linguagens
Powered by
JForum 2.1.8
©
JForum Team