Programación General > JSP/Servlets

 Guardar archivo cargado

(1/1)

silmarilian:
Hola a todos

Estoy haciendo una página web y necesito cargar archivos (fotos) y guardarlos en una ruta relativa. Estoy haciendo pruebas y si pongo toda la ruta o los guardo en c: funciona perfectamente (puede que a alguien le sirva el siguiente código) pero yo necesito que me los guarde en la carpeta de imágenes donde está todo el proyecto (/img/fotos/) y así me da un error que dice que no encuentra la ruta especificada. Si alguien puede ayudarme se lo agradecería mucho.

Este es el código:


--- Código: Text --- <html><head><title>Prueba</title></head><body><h1>Cargar fichero</h1> <form action="../servletCargarFichero" enctype="multipart/form-data" method="post">Fichero: <input type="file" name="fichero" size="70" accept="text/plain;image/jpeg"><br /><br /><input type="submit" name="enviar" value="Enviar"></form></body></html>  

El siguiente código es del servlet


--- Código: Text --- import java.io.*;import java.net.*; import javax.servlet.*;import javax.servlet.http.*; import org.apache.commons.fileupload.*;import org.apache.commons.fileupload.servlet.ServletFileUpload;import org.apache.commons.fileupload.disk.DiskFileItemFactory;import org.apache.commons.io.FilenameUtils;import java.util.*;import java.io.File;import java.lang.Exception; public class servletCargarFichero extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {PrintWriter out=response.getWriter();response.setContentType("application/vnd.wap.xhtml+xml");response.setContentType("text/html"); out.println("<html>");out.println("<head>");out.println("<title>Prueba</title>");out.println("</head>"); out.println("<body>");out.println("<h1>Datos recibidos en el servidor</h1>");out.println("<hr/>");out.println("<p>");  /* Miramos si la petición HTTP está codificada en formato multiparte.Esto es para que lea los parametros y el fichero a la vez. */try{if (ServletFileUpload.isMultipartContent(request)){ServletFileUpload servletFileUpload = new ServletFileUpload(new DiskFileItemFactory()); /* Al ser multiparte, con servletFileUpload.parseRequest(request) recibimos una lista de FileItem. */List fileItemsList = servletFileUpload.parseRequest(request); String optionalFileName = ""; /* FileItem es un campo simple, del tipo nombre-valor*/FileItem fileItem = null; Iterator it = fileItemsList.iterator();String fieldName=null;String value=null;while (it.hasNext()){FileItem fileItemTemp = (FileItem)it.next();if (fileItemTemp.isFormField()){fieldName=fileItemTemp.getFieldName();value=fileItemTemp.getString(); if (fileItemTemp.getFieldName().equals("filename"))optionalFileName = fileItemTemp.getString();}elsefileItem = fileItemTemp;} if (fileItem!=null){// Nombre del archivo a cargarString fileName = fileItem.getName();  out.println("<b>Info del fichero cargado:</b><br/>"); /*Nos dice el tipo de fichero. Ej.: .jpg (image/jpge), .txt (text/plain) ...)*/ out.println("Tipo de fichero: "+fileItem.getContentType()+"<br/>");out.println("Nombre del campo: "+fileItem.getFieldName()+"<br/>");out.println("Nombre del fichero: "+fileName+"<br/>");out.println("Tamaño del fichero: "+fileItem.getSize()+"<br/><br/>");  /* Guardar el fichero cargado si su tamaño es mayor que 0. */if (fileItem.getSize() > 0){if (optionalFileName.trim().equals(""))fileName = FilenameUtils.getName(fileName);elsefileName = optionalFileName; String dirName = "/img/fotos/"; File saveTo = new File(dirName + fileName); out.println("GUARDADO EN: <b>"+saveTo+"</b>");try {fileItem.write(saveTo); out.println("<b>El fichero cargado se ha guardado correctamente.</b>"); } //trycatch (Exception e){out.println("<br/>"+e.getMessage()+"<br/><br/>");out.println("<b>Ha ocurrido un error cuando intentábamos guardar el fichero cargado.</b>");}} // if} // if} // while} //trycatch(Exception e){}out.println("</p>");out.println("</body>");out.println("</html>");}}  

shadow_rev:
Prueba quitando el "/" del principio en la ruta de las imágenes (img/fotos/ en vez de /img/fotos/)

:suerte:

Navegación

[0] Índice de Mensajes

Ir a la versión completa