Ver Mensaje Individual
  #4 (permalink)  
Antiguo 13/01/2006, 06:25
Avatar de dogduck
dogduck
 
Fecha de Ingreso: enero-2006
Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 19 años
Puntos: 19
Tras mirar por encima el uso de la api de fileupload http://jakarta.apache.org/commons/fileupload/using.html

He probado este código y sigue dando error :

causa raíz

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

provocado por:
// Parse the request
List /* FileItem */ items = upload.parseRequest(req);

¿¿?? Nadie sabe como arreglar este "tropiezo" ???

Seguimos en las mismas ...

Código:
import java.io.*;
import java.net.*;

import javax.servlet.*;
import javax.servlet.http.*;

import org.apache.commons.fileupload.*;
import org.apache.commons.fileupload.disk.*;
import org.apache.commons.fileupload.servlet.*;

import java.util.*;

.......................................

 public boolean procesaFicheros(HttpServletRequest req, PrintWriter out ) {
       
        
        try {
        // Check that we have a file upload request
        boolean isMultipart = FileUpload.isMultipartContent(req);
        // Create a factory for disk-based file items
        FileItemFactory factory = new DiskFileItemFactory();

        // Create a new file upload handler
        ServletFileUpload upload = new ServletFileUpload(factory);

        // Parse the request
        List /* FileItem */ items = upload.parseRequest(req);
        
             if(items == null)
            {
                depura("La lista es nula");
                return false;
            }

            out.print("<br>El número de ficheros subidos es: " +  items.size());
        // Iteramos por cada fichero
	    Iterator i = items.iterator();
            FileItem actual = null;
            depura("estamos en la iteración");

            while (i.hasNext())
            {
                actual = (FileItem)i.next();
                String fileName = actual.getName();
                out.println("<br>Nos han subido el fichero" + fileName);

                // construimos un objeto file para recuperar el trayecto completo
                File fichero = new File(fileName);
                depura("El nombre del fichero es " + fichero.getName());

                // nos quedamos solo con el nombre y descartamos el path
                fichero = new  File("c:\\ficherossubidos\\" + fichero.getName());

                // escribimos el fichero colgando del nuevo path
                actual.write(fichero);
            }
        }
        catch (
            Exception e){depura("Error de Aplicación " + e.getMessage());
            return false;
        }

        return true;
    }

Última edición por dogduck; 13/01/2006 a las 06:33