È possibile utilizzare un servlet con un tag del modulo HTML per consentire agli utenti di caricare file sul server. Un file caricato potrebbe essere un file di testo, un file di immagine o qualsiasi documento.
Creazione di un modulo di caricamento file
Il seguente codice HTM di seguito crea un modulo di caricamento. Di seguito sono riportati i punti importanti da annotare:
Il modulo method l'attributo dovrebbe essere impostato su POST il metodo e il metodo GET non possono essere utilizzati
Il modulo enctype l'attributo dovrebbe essere impostato su multipart/form-data.
Il modulo actionl'attributo deve essere impostato su un file servlet che gestisca il caricamento dei file sul server di backend. L'esempio seguente sta usandoUploadServlet servlet per caricare il file.
Per caricare un singolo file devi utilizzare un unico tag <input ... /> con attributo type = "file". Per consentire il caricamento di più file, includi più di un tag di input con valori diversi per l'attributo name. Il browser associa un pulsante Sfoglia a ciascuno di essi.
<html>
<head>
<title>File Uploading Form</title>
</head>
<body>
<h3>File Upload:</h3>
Select a file to upload: <br />
<form action = "UploadServlet" method = "post" enctype = "multipart/form-data">
<input type = "file" name = "file" size = "50" />
<br />
<input type = "submit" value = "Upload File" />
</form>
</body>
</html>
Questo mostrerà il seguente risultato che consentirebbe di selezionare un file dal PC locale e quando l'utente farebbe clic su "Carica file", il modulo verrà inviato insieme al file selezionato -
File Upload:
Select a file to upload:
NOTE: This is just dummy form and would not work.
Scrittura del servlet di backend
Di seguito è riportato il servlet UploadServletche si occuperebbe di accettare il file caricato e di memorizzarlo nella directory <Tomcat-installation-directory> / webapps / data. Questo nome di directory può anche essere aggiunto utilizzando una configurazione esterna come un filecontext-param elemento in web.xml come segue:
<web-app>
....
<context-param>
<description>Location to store uploaded file</description>
<param-name>file-upload</param-name>
<param-value>
c:\apache-tomcat-5.5.29\webapps\data\
</param-value>
</context-param>
....
</web-app>
Di seguito è riportato il codice sorgente per UploadServlet che può gestire il caricamento di più file alla volta. Prima di procedere devi assicurarti quanto segue:
Ora prova a caricare i file utilizzando il modulo HTML che hai creato sopra. Quando provi http: // localhost: 8080 / UploadFile.htm, verrà visualizzato il seguente risultato che ti aiuterà a caricare qualsiasi file dalla tua macchina locale.
File Upload:
Select a file to upload:
Se il tuo script servlet funziona correttamente, il tuo file dovrebbe essere caricato nella directory c: \ apache-tomcat8.0.28 \ webapps \ data \.