JAVA - Laden Sie die Binärdatei (z. B. PDF) vom Webserver herunter

7

Ich muss eine PDF-Datei von einem Webserver auf meinen PC herunterladen und lokal speichern.

Ich habe Httpclient verwendet, um eine Verbindung mit dem Webserver herzustellen und den Inhaltskörper zu erhalten:

%Vor%

Dann speichere ich Inhalt in einer Datei:

%Vor%

Ich habe auch versucht, einen String-Inhalt direkt in Datei zu speichern:

%Vor%

Aber das Ergebnis ist immer das gleiche: Ich kann die PDF-Datei öffnen, aber ich kann nur weiße Seiten sehen. Liegt der Fehler in der Codierung von PDF-Streams und Endstream-Zeichensätzen? Muss der PDF-Inhalt zwischen Stream und EndStream auf andere Weise manipuliert werden?

Ich hoffe, dies hilft, einige Missverständnisse darüber zu vermeiden, was ich tun möchte:

Dies ist mein Login (funktioniert perfekt):

%Vor%

Sobald ich eingeloggt bin, kann ich auf den Link der Datei zugreifen (pdf, image, doc, exc.). In diesem Fall nehmen wir zum Beispiel eine PDF-Datei:

%Vor%

Methode httpConnection funktioniert und ich kann die Datei herunterladen !!

Serverantwort:

%Vor%

Beispiel für den Antworttext:

%Vor%
  

& gt;       endobj

%Vor%

Lasst uns jetzt von hier aus beginnen. Können Sie mir bitte sagen, was ich tun muss, um den Stream in einer Datei zu speichern?

########### Gelöst:

Um eine Datei lokal aus den Stream-Daten zu speichern, unter Berücksichtigung der binären Daten, habe ich folgendes gefunden:

%Vor%

Wenn Sie eine effizientere Methode möchten, können Sie java.IOUtils verwenden und so etwas machen:

%Vor%     
Augusto Picciani 17.11.2011, 17:47
quelle

4 Antworten

9

Nie speichert binäre Daten in String .

Nie verwenden Sie PrintWriter für Binärdaten.

Nie Binärdateien zeilenweise schreiben.

Ich möchte nicht hart oder unhöflich sein, aber diese drei nie müssen sich in deinen Gedanken verwurzeln! :)

Sie können diese Seite sehen, um ein Beispiel zum Herunterladen einer Binärdatei zu erhalten. Ich mag dieses Beispiel nicht, weil es das gesamte Dokument im Speicher zwischenspeichert (was passiert, wenn seine Größe 5 GB ist?), Aber Sie können damit beginnen. :)

    
gd1 17.11.2011 17:49
quelle
7

Verwenden Sie Apache FileUtils. Ich versuchte es mit einem kleinen PDF und einem JAR, das 60 meg war. Funktioniert super!

%Vor%     
Gary Eberhart 12.04.2013 16:28
quelle
3

können Sie nicht einfach den Link nehmen?

%Vor%     
hurtledown 17.11.2011 18:02
quelle
0

Lassen Sie jsoup die harte Arbeit zum Herunterladen der Antwort als Bytes ausführen.

%Vor%

Schreiben Sie die Bytes mit apache commons FileUtil.

%Vor%     
Sorter 29.11.2013 11:34
quelle

Tags und Links