2010-08-06 7 views
20

Ich frage mich, was StackOverflow-Benutzer der Java File Upload API in der Vergangenheit verwendet haben und empfehlen würden? Eine schnelle Google-Suche scheint darauf hinzuweisen, dass die am häufigsten verwendete API Apache Commons File Upload ist (derzeit 1.2.1), jedoch hatten wir einige Probleme bezüglich der Verwendung dieser Bibliothek mit größeren Dateien, die wir nicht haben konnten lösen.Apache Commons Datei-Upload-Alternativen

Hat jemand eine zuverlässige Datei-Upload-Bibliothek (abgesehen von der Apache Commons) gefunden, die sie empfehlen würden?

EDIT: Die Streaming-API ist nicht eine Option, da es die gleiche zugrunde liegende Klasse verwendet, die unser Problem verursacht.

EDIT2: Unser ursprüngliches Problem scheint eine Art von Problem mit Load Balancing zu sein. Unsere Clone-Instanz verwendet Apache/AJP1.3 und die Live-Instanz verwendet Zeus XTM. Das Umgehen des Lastenausgleichs mithilfe der Server-IP anstelle des Hostnamens scheint das Problem zu beheben.

EDIT3: Dies stellte sich als ein Problem mit der Firewall des Clients heraus. Es scheint, dass sie ... äh .. nicht ganz wahrheitsgemäß waren, als sie sagten, dass das definitiv wusste, dass dies kein Firewall-Problem war.

+0

wie groß sind die Dateien? –

+0

Welche Art von Problemen? Speicher bezogen? – naikus

+0

Die Dateien, die die Probleme verursachen, sind 7 MB und mehr. Die größte, die wir getestet haben, ist 600MB. Was passiert ist, dass der Upload im Browser fehlschlägt, und wir am Ende mit einem Stack-Trace in den Protokollen enden, der besagt, dass der Stream unerwartet beendet wurde. Es gibt einen offenen Fehler in Bezug auf die Commons File Upload JIRA-Instanz (https://issues.apache.org/jira/browse/FILEUPLOAD-143). Der vorletzte Kommentator ist ich. Es handelt sich nicht um ein Flash-Problem. Dies geschieht in allen Browsern, jedoch nur für Windows XP- und Vista-Clients. Wir sind völlig verblüfft. – Jon

Antwort

1

Wenn Sie zeit- oder speicherbezogene Probleme haben, haben Sie den streaming API Commons Datei-Upload angeschaut?

+0

Ja. Wir haben uns die Quelle angesehen und festgestellt, dass sie die Klasse verwendet, mit der wir Probleme haben - org.apache.commons.fileupload.MultipartStream. – Jon

-2

einen Blick auf theese Einstellungen haben, ist die Grenze von 8 MB Standard

upload_max_filesize 
post_max_size 
+0

Wo sind diese Einstellungen? In Commons Datei hochladen sich selbst? Ich hatte ein schnelles Google und sie scheinen Apache-Einstellungen zu sein. Wir verwenden nicht Apache. – Jon

+0

In der Dokumentation (http://commons.apache.org/fileupload/using.html) heißt es, dass Sie eine maximale Upload-Größe für einen Upload festlegen können, indem Sie 'upload.setSizeMax (yourMaxRequestSize); '- aber der Standardwert für diesen Wert ist -1, was kein Limit ist. – Jon

+0

-1 für die Erwähnung von PHP-Einstellungen in einer Java-Frage – mhaller