Salve gente,
tramite degli esempi su internet sono riuscito a creare la mia servlet con relativa pagina JSP per l'upload di file. Vorrei sapere se fosse possibile includere una progress bar nella pagina di upload che mi indichi sullo stato della transazione.
Vi allego il mio codice:
SERVLET:
Pagina JSPcodice:import com.oreilly.servlet.*; //~--- JDK imports ------------------------------------------------------------ import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class ControllerFiles extends HttpServlet { public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Istanziamo le variabili // Il ServletContext sevirà per ricavare il MIME type del file uploadato ServletContext context = getServletContext(); String forw = null; try { // Stabiliamo la grandezza massima del file che vogliamo uploadare int maxUploadSize = 100000000; MultipartRequest multi = new MultipartRequest(request, ".", maxUploadSize); String descrizione = multi.getParameter("text"); File myFile = multi.getFile("myFile"); String filePath = multi.getOriginalFileName("myFile"); String path = "C:\\files\\"; try { // ricaviamo i dati del file mediante un InputStream FileInputStream inStream = new FileInputStream(myFile); // stabiliamo dove andrà scritto il file FileOutputStream outStream = new FileOutputStream(path + myFile.getName()); // salviamo il file nel percorso specificato while (inStream.available() > 0) { outStream.write(inStream.read()); } // chiudiamo gli stream inStream.close(); outStream.close(); } catch (FileNotFoundException fnfe) { fnfe.printStackTrace(); } catch (IOException ioe) { ioe.printStackTrace(); } forw = "/done.jsp"; // mettiamo nella request i dati così da poterli ricavare dalla jsp request.setAttribute("contentType", context.getMimeType(path + myFile.getName())); request.setAttribute("text", descrizione); request.setAttribute("path", path + myFile.getName()); request.setAttribute("size", Long.toString(myFile.length()) + " Bytes"); RequestDispatcher rd = request.getRequestDispatcher(forw); rd.forward(request, response); } catch (Exception e) { e.printStackTrace(); } } }
WEB.XML DI TOMCATcodice:<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <form align="center" method="POST" action="ControllerFiles" enctype="multipart/form-data"> <table align="center" border="2" style="border-collapse: collapse"> <tr> <td align="center"><font size="4" color="yellow">Descrizione</font></td> <td colspan="2"> <textarea name="text" cols="33" rows="2"></textarea> </td> </tr> <tr> <td align="center">File</td> <td> <input name="myFile" type="file"> </td> <td align="center"> <input type="submit" name="salva" value="SALVA"> </td> </tr> </table> </form> </html>
codice:<?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>ControllerFiles</servlet-name> <servlet-class>ControllerFiles</servlet-class> </servlet> <servlet-mapping> <servlet-name>ControllerFiles</servlet-name> <url-pattern>/ControllerFiles</url-pattern> </servlet-mapping> </web-app>

Rispondi quotando
