Upload di file su Tomcat con JSP/servlets

Vediamo come fare l’upload di file su un server Tomcat tramite una pagina JSP.

Innanzi tutto scarichiamo i seguenti file .jar:

ed inseriamoli nel classpath della nostra applicazione.

Creiamo una form dove indicare il file da uploadare sul nostro server:

<form action="Controller" method="post" enctype="multipart/form-data">
    <input type="file" name="fileUpload"/>
    <input type="submit" value="Invia"/>
</form>

Dove action=”Controller” indica il nome della servlet a cui inviare il comando e fate attenzione ad impostare la form come multipart/form-data necessario per effettuare l’upload dei file secondo le specifiche.

All’interno della nostra servelt (“Controller”)inseriamo il codice sequente:

        boolean isMultipart = ServletFileUpload.isMultipartContent(request);

        if(isMultipart){
        try {
        DiskFileItemFactory factory = new DiskFileItemFactory();

        ServletFileUpload upload = new ServletFileUpload(factory);

        List items = upload.parseRequest(request);
        Iterator itr = items.iterator();

        while(itr.hasNext()) {
            FileItem item = (FileItem) itr.next();

            if(!item.isFormField()) {
                File fullFile  = new File(item.getName()); 
                File savedFile = new File(getServletContext().getRealPath("/"), fullFile.getName());
                //scrivo l'item nel file "savedFile"
                item.write(savedFile);
            }
        }

        } catch (Exception e) {
            // TODO Auto-generated catch block
            apriErrorPage(e.getMessage());
        }
        }

I file salvati vengo memorizzati nella home dell’applicazione(“/”).Per modificare il PATH è sufficente indicare uno alternativo da utilizzare.

Ed ecco fatto!! Facile vero!?!?!