Kleine Helfer

Einfache Datei-Uploads für Java-Projekte

10.08.2011
Von 
Diego Wyllie hat Wirtschaftsinformatik an der TU München studiert und verbringt als Softwareentwickler und Fachautor viel Zeit mit Schreiben – entweder Programmcode für Web- und Mobile-Anwendungen oder Fachartikel rund um Softwarethemen.
Mit "FileUpload” der Apache Foundation steht Java-Entwicklern eine quelloffene Bibliothek für die unkomplizierte und flexible Implementierung von Datei-Uploads zur Verfügung.
Dank Apache FileUpload können Java-Entwickler das Hochladen von Dateien auf den Server mit nur wenigen Zeilen Code implementieren.
Dank Apache FileUpload können Java-Entwickler das Hochladen von Dateien auf den Server mit nur wenigen Zeilen Code implementieren.
Foto: Diego Wyllie

Dateien auf den Server hochladen zu können stellt eine häufige Anforderung heutiger Web-Applikationen dar - eine aus Sicht des Nutzers triviale Funktion, deren Server-seitige Implementierung eigentlich nicht ganz so trivial ist. Will man auf Flash verzichten, muss dabei im Web-Client ein Html-Formular mit einem Input-Element des Typs "file” erzeugt werden. Damit kann der Anwender Dateien aus seinem lokalen Rechner auswählen, welche später zusammen mit den weiteren Formulardaten übertragen werden. Server-seitig müssen dann die Parameter einzeln verarbeitet werden.

Hier kommt Apaches FileUpload ins Spiel. Dabei handelt es sich um eine robuste Klassenbibliothek für Servlets und Web-Anwendungen, die sämtliche Funktionen rund um das Hochladen beliebiger Dateien bietet. Die Übermittlung der Formulardaten muss dabei mit der Post-Methode erfolgen. Außerdem muss für die Übertragungsart das Attribut "enctype” auf "multipart/form-data” gesetzt werden. Dann können sowohl String-Parameter als auch Binärdateien in einem einzigen Http-Request an den Server gesendet werden. Der mitgelieferte FileUpload-Parser identifiziert die unterschiedlichen Parameter und stellt entsprechende Funktionen für deren Weiterverarbeitung bereit. Hochgeladene Dateien können wahlweise in den Arbeitsspeicher gelegt, auf der Festplatte gespeichert oder in eine Datenbank gestreamt werden - die Entscheidung liegt beim Entwickler. Außerdem bietet die Library zahlreiche Hilfsmethoden, die die Arbeit mit Datei-Uploads erleichtern. Dazu zählen beispielsweise Get-Methoden, die nützliche Informationen wie Dateityp, -Größe oder -Name zurückliefern, sowie Set-Methoden, die etwa die maximale Dateigröße für hochzuladende Dateien festlegen.

CW-Fazit

Die FileUpload-Bibliothek macht das Hochladen von Dateien bei Web-basierenden Java-Anwendungen recht einfach. Wie von der Apache Foundation nicht anders zu erwarten, ist die Lösung in Sachen Robustheit und Performance kaum zu übertreffen.
(Teaser: Fotolia/Sergej Seemann, pah)