Erro fileupload

6 respostas
D

Ola, estou utlizando o fileUpload

ao executar da erro na seguinte linha

List lista = upload.parseRequest(req, intTamanho, lngTamanho, "c:\temp");

eu depurei pelo eclipse, o que esta errado??
a pasta temp existe.
meu classpath
C:\projeto\WEB-INF\lib\commons-fileupload-1.1-dev.jar
parece que ele nao consegue achar algo.

erro:
HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Servlet execution threw an exception

root cause

java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream
org.apache.commons.fileupload.DefaultFileItemFactory.createItem(DefaultFileItemFactory.java:102)
org.apache.commons.fileupload.FileUploadBase.createItem(FileUploadBase.java:488)
org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:359)
org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:266)
org.apache.commons.fileupload.DiskFileUpload.parseRequest(DiskFileUpload.java:207)
FileServlet.doPost(FileServlet.java:45)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

public void doPost(HttpServletRequest req, HttpServletResponse res)
		    throws ServletException, IOException {

        boolean isMultipart =false;
        int intTamanho=1024*20;
        long lngTamanho=1024*20;
        String strCaminho ="/file";
        
        if (isMultipart=FileUpload.isMultipartContent(req)){
            try {
                DiskFileUpload upload = new DiskFileUpload();                
                List lista = upload.parseRequest(req, intTamanho, lngTamanho, "c:\temp");
                
                System.out.println(lista.size());
                Iterator it = lista.iterator();
                FileItem fi = (FileItem) it.next();
                while(it.hasNext()){
                    File diretorio=new File(strCaminho);
                    if (!diretorio.exists()){
                        diretorio.mkdir();
                    }    
                    
                    File file=new File(diretorio, fi.getName());
                    FileOutputStream fos=new FileOutputStream(file); 
                    InputStream is=fi.getInputStream();
                    
                    byte[] buffer=new byte[2048];
                    int nLidos;
                    while ((nLidos=is.read(buffer))>=0){
                        fos.write(buffer,0,nLidos);                                             
                    }
                    fos.flush();
                    fos.close();
                    System.out.println(file.getAbsolutePath());
                }                
                
            } catch ( FileUploadException e){
                e.printStackTrace();
            }
        }

6 Respostas

Mauricio_Linhares

Você tem que baixar o Commons IO e colocar no seu Classpath: http://jakarta.apache.org/commons/io/

Rafael_Steil

Olha o erro:

java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream

Vc nao tem o commons-io

Rafael

D

valews pessoal,
achei que era algum erro de setar, não achei que precisava baixar outros .jar, pensei que ja vinha com o fileupload.
Assim a gente aprende! :mrgreen: heheh

T

d

rbroz85

faz o getter e setter de getFilename e:

setFilename((new File(getFilename())).getName());

imprimir getFilename();

bem isso me retornou o nome puro, tipo, arquivo.jpeg

rbroz85

faz o getter e setter de getFilename e:

setFilename(item.getName());

setFilename((new File(getFilename())).getName());

imprimir getFilename();

bem isso me retornou o nome puro, tipo, arquivo.jpeg

ps: tinah esquecido doprimeiro set

Criado 24 de agosto de 2005
Ultima resposta 21 de mar. de 2007
Respostas 6
Participantes 5