22/05/2010, 13:09
|
| | Fecha de Ingreso: abril-2010
Mensajes: 36
Antigüedad: 14 años, 7 meses Puntos: 0 | |
Respuesta: Subir un fichero con jsp Bueno, me había decidido a hacerlo en un servlet usando las librerias commons.fileupload y commons.io. El código es el siguiente:
import org.apache.commons.fileupload.disk.DiskFileItemFac tory;
import org.apache.commons.fileupload.servlet.ServletFileU pload;
import java.util.*;
import org.apache.commons.fileupload.FileItem;
import java.io.*;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.*;
response.setContentType("text/html");
PrintWriter out = response.getWriter();
try {
// Inicio de pagina
out.println("<html>");
out.println("<head><title</title></head>");
out.println("<body>");
// Si la request es del tipo multipart/form data ... if (ServletFileUpload.isMultipartContent(request)){
ServletFileUpload servletFileUpload = new ServletFileUpload(new DiskFileItemFactory()); List fileItemsList = servletFileUpload.parseRequest(request);
DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();
diskFileItemFactory.setSizeThreshold(81920); // bytes
File repositoryPath = new File("/temp");
diskFileItemFactory.setRepository(repositoryPath);
servletFileUpload.setSizeMax(81920); // bytes
Iterator it = fileItemsList.iterator();
while (it.hasNext()){
FileItem fileItem = (FileItem)it.next();
//El formulario solo contien campos input type=file
String nombreCampo = fileItem.getFieldName();
long tamanioArchivo = fileItem.getSize();
String nombreArchivo = fileItem.getName();
String contentType = fileItem.getContentType();
// Obtengo caracteristicas de campo y archivo
out.println( "<p>--> Name:" + nombreCampo + "</p>");
out.println( "<p>--> Tamaño archivo:" + tamanioArchivo + "</p>");
out.println( "<p>--> Nombre archivo del cliente:" + nombreArchivo + "</p>");
out.println( "<p>--> contentType:" + contentType + "</p>");
// Obtengo extensión del archivo de cliente
String extension = nombreArchivo.substring(nombreArchivo.indexOf(".") );
out.println( "<p>--> Extensión del archivo:" + extension + "</p>");
// Guardo archivo del cliente en servidor, con un nombre 'fijo' y la
// extensión que manda el cliente
File archivo = new File(directorioArchivos + "/cv" + extension);
fileItem.write(archivo);
if ( archivo.exists() )
out.println( "<p>--> GUARDADO " + archivo.getAbsolutePath() + "</p>");
else
out.println( "<p>--> FALLO AL GUARDAR. NO EXISTE " + archivo.getAbsolutePath() + "</p>");
}
}
}
}catch (Exception e) {
e.printStackTrace(out);
e.printStackTrace();
}
Pues resulta que me da error en las lineas en azul y no sé por qué, ¿alguien me puede ayudar, por favor? |