[code]
Usuario usuario = new Usuario();
UsuarioDAO usuarioDAO = new UsuarioDAO();
String nome = request.getParameter("nome");
usuario.setLogin(nome);
String descricao = request.getParameter("descricao");
usuario.setSenha(descricao);
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
try {
List items = upload.parseRequest(request);
Iterator it = items.iterator();
while(it.hasNext()) {
FileItem item = (FileItem) it.next();
if (item.isFormField()) { //Aqui ele verifica se é um field do seu form
String name = item.getFieldName();
String value = item.getString();
}
}
} catch (FileUploadException ex) {
Logger.getLogger(produtoController.class.getName()).log(Level.SEVERE, null, ex);
}[/code]
Antes de tentar fazer o upload eu tentei salvar apenas o nome e descrição e funcionou, agora debuguei e percebi que as variáveis nome e descrição estão vindo como null também, não entendi o que o upload interfere nelas :?
Descobri que o que fazia as variáveis ficarem vazias era o ENCTYPE do form, mas porque eu naum entendi, pois onde pesquisei falaram para colocar o ENCTYPE para fazer o upload.
[code]
Usuario usuario = new Usuario();
UsuarioDAO usuarioDAO = new UsuarioDAO();
String nome = request.getParameter("nome");
usuario.setLogin(nome);
String descricao = request.getParameter("descricao");
usuario.setSenha(descricao);
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
try {
List items = upload.parseRequest(request);
Iterator it = items.iterator();
while(it.hasNext()) {
FileItem item = (FileItem) it.next();
if (item.isFormField()) { //Aqui ele verifica se é um field do seu form
String name = item.getFieldName();
String value = item.getString();
}
}
} catch (FileUploadException ex) {
Logger.getLogger(produtoController.class.getName()).log(Level.SEVERE, null, ex);
}[/code]
erro
javax.servlet.ServletException: Servlet execution threw an exception
root cause
java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream
org.apache.commons.fileupload.disk.DiskFileItemFactory.createItem(DiskFileItemFactory.java:199)
org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:361)
org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126)
controller.produtoController.doPost(produtoController.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause
java.lang.ClassNotFoundException: org.apache.commons.io.output.DeferredFileOutputStream
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
org.apache.commons.fileupload.disk.DiskFileItemFactory.createItem(DiskFileItemFactory.java:199)
org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:361)
org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126)
controller.produtoController.doPost(produtoController.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
Antes de tentar fazer o upload eu tentei salvar apenas o nome e descrição e funcionou, agora debuguei e percebi que as variáveis nome e descrição estão vindo como null também, não entendi o que o upload interfere nelas :? [/quote]
Putz, vi que naum tinha postado o erro e apertei sem querer no botão citar e naum em editar…shuahsuahsuahuhas
Pela exception vc precisa adicionar a biblioteca commons-io no seu classpath/projeto. Talvez precise de outras bibliotecas. Se ocorrer outros ‘java.lang.NoClassDefFoundError’, tente procurar em www.jarfinder.com a biblioteca da classe…
Sobre nome e descrição vindo null, vc precisa recuperar de outra forma neste caso. Utilize a forma que está no comentário:
if (item.isFormField()) { //Aqui ele verifica se é um field do seu form
String name = item.getFieldName();
String value = item.getString();
}
só precisa verificar se name é igual a “nome” ou “descricao” e utilizar o value.
Amigo tenta fazer o upload da foto separado dos outros campos. cria um form só para ele… da uma olhada na apostiva FJ28 da Caelum é gratuita e tem uma parte que fala sobre upload de imagens… vlw…
Mas eu queria que ficasse no mesmo form, tipo se eu colocar em outro vou ter que primeiro salvar o nome e descrição para depois salvar a imagem, fica ruim para o usuário daí. Dei uma olhada na apostila mas ela mostra como fazer junto com o vRaptor e eu não sei usar ele e não tenho muito tempo para aprender agora, então teria que ser sem ele.