Espero y les sirva.
----------------------------------------------------------------------------------------
1. Crear una pagina html con el nombre de "download.html", en el siguiente directorio../webapps/nombre proyecto/jsp/ejemplos
Ojo: nombre proyecto se refiere al nombre que "Usted" le puso a su proyecto (que se encuentra en el directorio "webapps").Si por ejemplo este se llamase "prueba1", entonces el path seria como sigue:...webapps\prueba1\jsp\ejemplos
Que contenga el siguiente codigo:
<%@page contentType="text/html"%> <html> <head><title>jspQuery</title></head> <body> <form action="/nombre proyecto/servlet/ejemplos.Download"> <p><font color="#FFFFFF" size="1" face="Verdana, Arial, Helvetica, sans-serif"><strong> </strong></font></p> <p> <input type="submit" value="Download" name="dato" > </p> <p> </p> <p> </p> </form> </body> </html> |
2. Crear un fichero bajo el nombre de: "Download.java" en la siguiente direccion:
\webapps\nombre proyecto\WEB-INF\classes\ejemplos
Conteniendo el siguiente codigo:
/* * Download.java * * Created on Jan 12, 2006, 04:00 PM */ package ejemplos; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; /** * * @author Oscar Hurtado Morato * @version 1.0 */ public class DownloadError extends HttpServlet { /** Initializes the servlet. */ public void init(ServletConfig config) throws ServletException { super.init(config); } /** Destroys the servlet. */ public void destroy() { } protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, java.io.IOException { //Aqui se colocan el path y el nombre del file a hacerse upload String filePath = "c:/"; String fileName = "prueba.txt"; FileInputStream fileToDownload = new FileInputStream(filePath); ServletOutputStream out = response.getOutputStream(); response.setContentType("application/zip"); response.setHeader("Content-Disposition","attachment; filename="+fileName); response.setContentLength(fileToDownload.available()); int c; while((c=fileToDownload.read()) != -1){ out.write(c); } out.flush(); out.close(); fileToDownload.close(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, java.io.IOException { processRequest(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, java.io.IOException { processRequest(request, response); } } |
3. Fin.
Hola Oscar, cuando intento compilar el codigo Download.java, aparece un error en Netbeans sobre la linea:
ResponderBorrarpublic class DownloadError extends HttpServlet
y dice:
Class DownloadError is public, should be declared in a file named DownloadError.java
entonces no se que es lo que debo hacer ...
Bases de Java:
ResponderBorrarTodo archivo java debe contener una unica clase declarada publica que debe concordar el nombre con el del fichero. Puedes declarar más clases en el mismo fichero pero no publicas.
no me aclaro, ¿podria explicarme alguien como hacer para que funcione?
ResponderBorrarHola.
ResponderBorrarMe ha servido de bastante ayuda. Sin embargo, en el código de processRequest, el constructor del objeto FileInputStream debe recibir el path completo del nombre del fichero. En tal caso, sería:
String fileName = "C:\\prueba.txt";
FileInputStream fileToDownload = new FileInputStream(fileName);