Upload file in JSP/Servlet

Vediamo come poter effettuare l’upload del file in JSP / Servlet utilizzando Jakarta Commons FileUpload

Codice HTML

Spesso quando sviluppiamo una web application ci troviamo di fronte alla necessità di gestire l’upload di un file. Dal punto di vista dell’HTML questo significa avere semplicemente una form che permette all’utente di selezionare il file scegliendolo dal filesystem. Il codice HTML può essere quindi inserito all’interno del template grafico della nostra pagina JSP/Servlet senza alcuna difficoltà.

Qui di seguito trovate riportato il codice di un semplice form per l’upload

<FORM ENCTYPE='multipart/form-data'
 method='POST' action='mioserver/upload.jsp'>
<INPUT TYPE='file' NAME='fileUp'>
<INPUT TYPE='submit' VALUE='Upload File'>
</FORM>

Per quanto riguarda invece la parte di JSP/Servlet non esiste un metodo standard per gestire il file di cui viene fatto l’upload, quindi vediamo un progetto opensource che ci permette di gestire l’upload senza dover scrivere codice inutile e reinventare l’acqua calda.

Jakarta Commons FileUpload

Commons FileUpload è un progetto di Apache Jakarta, quindi già abbiamo una mezza garanzia sul prodotto che vogliamo utilizzare. Il sito di riferimento è http://jakarta.apache.org/commons/fileupload/
dove potete trovare tutto il necessario per utilizzare questo progetto opensource. Vediamo quindi il codice da utilizzare in una pagina lato server (JSP/Servlet) per salvare il file

// controlliamo se la request che è stata
// effettuata contiene o meno un file
boolean isMultipart = FileUpload.isMultipartContent(request);

if (isMultipart) {
	DiskFileUpload upload = new DiskFileUpload();
	List items = upload.parseRequest(request);
	Iterator itr = items.iterator();

	// Ora controlliamo tutti gli item presenti
	// salvando tutti i file che sono stati inviati

	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());

			item.write(savedFile);
		} 
	}
}

Come potete vedere l’upload del file è molto semplice utilizzando queste librerie.

Quello che serve per utilizzarle nelle nostre pagine JSP/Servlet è inserire il jar di Commons FileUpload nella nostra web application e chiaramente dichiarare l’import del package org.apache.commons.fileupload nei nostri file. Sul sito ufficiale potete trovare molte altre informazioni
Link al download

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.