2016-05-19 8 views
0

Ich versuche, ein Bild hochzuladen. Wenn das Bild klein ist, wird es leicht hochgeladen. Wenn ich jedoch versuche, ein qualitativ hochwertiges großes Wallpaper hochzuladen, dauert es ewig. Es zeigt Upload 89% und bleibt so. Ich benutze Apache Commons API, um die Datei hochzuladen und Inputstream zu lesen. Hier ist mein Codebeispiel:Large Image/Datei hochladen in Java-Anwendung

Gibt es eine Möglichkeit, ich kann das Bild schneller mit dem obigen Code hochladen? Gibt es irgendwelche Apis, die sich darum kümmern? Ich schätze jede Hilfe. Vielen Dank.

Antwort

0

Können Sie die Größe Ihrer großen Datei und die maximale Heap-Größe Ihrer JVM explizit angeben? (-Xmx Java Option)

Es könnte einfach sein, dass Ihre JVM nicht genug Speicher bekommen kann, um Ihr Image korrekt zu verwalten. Eine grundlegende Lösung könnte also sein, den Wert der Heap-Größe auf etwas Größeres als die Dateigröße zu erhöhen.

0

Ich denke, Sie erhalten ein OOM wegen des Codes im Else-Block, wo Sie ein Byte-Array mit stream.available zuweisen, um die Größe anzugeben. Wenn Sie die verfügbare Methode InputStreamslesen, gibt die verfügbare Methode möglicherweise auch die Gesamtanzahl der Bytes im Stream zurück und sollte daher nicht für die Zuweisung von Puffern verwendet werden. Möglicherweise sollten Sie einen kleinen Puffer fester Größe verwenden.