Einfache Datei-Uploads für Java-Projekte

02.12.2010

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 aber nicht ganz so einfach ist. Will man auf Flash verzichten, muss 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.(Diego Wyllie)CW-Fazit: Die FileUpload-Bibliothek macht das Hochladen von Dateien bei Web-basierenden Java-Anwendungen recht einfach. Typisch Apache: Die Lösung ist robust und performant.