Estou precisando desenvolver uma JSP para realizar upload de arquivos para o servidor. Dei uma olhada nos foruns a respeito e normalmente aconselham a usar o fileupload da jakarta, mas estou tendo problemas com sua utilização.
Ao tentar instanciar um objeto da classe DiskFileUpload dá uma exceção com a seguinte mensagem : javax.servlet.ServletInputStream.
Não estou conseguindo resolver, alguém poderia me ajudar, preciso disso urgentemente.
Cara, não sei se isso ajuda, mas olha só o código da minha JSP que faz upload:
<%@ page import="java.lang.*" %>
<%@ page import="java.io.*" %>
<%@ page import="java.util.*" %>
<%@ page import="regras.Funcoes" %>
<%@ page import="org.apache.commons.fileupload.*" %>
<%@ page session="true" errorPage="error.jsp"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%
Funcoes funcao = new Funcoes();
String upload = null;
String real_path = null;
String can_path = null;
String temp_path = null;
String cabecalho = null;
String stabela = "";
String sfilename = "";
upload = request.getParameter("doupload");
if (upload==null){upload="N";}
real_path = application.getRealPath("");
temp_path = real_path+"/tmp";
real_path+= "/imagens/";
File objfile = new File(real_path);
can_path = objfile.getCanonicalPath();
//Caso exista um upload a ser feito
cabecalho = request.getHeader("content-type");
if (cabecalho!=null){
DiskFileUpload fu = new DiskFileUpload();
fu.setSizeMax(1000000);
fu.setSizeThreshold(4096);
fu.setRepositoryPath(temp_path);
List fileItens = fu.parseRequest(request);
Iterator i = fileItens.iterator();
FileItem fi = (FileItem)i.next();
sfilename=fi.getName();
sfilename = funcao.ExtractFileName(sfilename);
File arquivo = new File(can_path+"/"+sfilename);
fi.write(arquivo);
}
Não sei se isso resolve.
Eu consegui usar, sem problemas, até que descobri que, de uma hora pra outra, as bibliotecas somem da pasta. É como se o Tomcat estivesse apagando as bibliotecas após o uso. E só acontece com essa classe :???:
Valeu rashi pela dica, mas só resolvi meu problema copiando o pacote commons-fileupload1.0.jar para o WEB-INF/lib da minha aplicação.
Somente depois disso é que funcionou. Caso alguém passe pelo mesmo problema, segue aí asolução que funcionou comigo.