# Mit Java ein JPG auf einem Server öffnen.



## HakkePeter (8. Jan 2009)

Hallo Freunde,

Ich sitz grad an einem kleinen Programm.
Folgendes soll das Programm tun:
-Eine Internetadresse die auf ein JPG zeig öffnen
-Das Bild auf dem Rechner Speichern

ich hab eine Adresse von einem JPG bild, davon gibt es jetzt z.b. mehrere die auf 01.jpg, 02.jpg ...., 99.jpg enden.
Nun will ich mit Java die einzelnen Bilder durchgehen und speichern.

Leider weiss ich "noch" nicht wie man mit Java auf so ein Bild auf einem Server zugreift und es speichert, sofern das überhaupt möglich ist.

Dann gibt es evtl. noch das Problem das der Server das nicht aushällt wenn da eine mega flut von Bildern angefragt wird?! Also brauche ich zwischen jedem bild eine gewisse Pause bevor das nächste angefragt wird.

Kann mir da jemand weiter Helfen?

Vielen Dank Gruß der HakkePeter


----------



## Gelöschtes Mitglied 5909 (8. Jan 2009)

vielleicht hilft dir das weiter, ist imprinzip simples streamen.


```
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;

public class ImageLoader {

	public static void main( String[] args ) throws IOException {
		URL url = new URL("http://www.heise.de/icons/ho/heise_online_logo.gif");
		String outputFolder = "C:\\";
		InputStream in = url.openStream();
		String path = url.getPath();
		File file = new File(outputFolder, path);
		file.createNewFile();
		BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(file));
		byte[] buffer = new byte[4096];
		int length = 0;
		while ((length = in.read(buffer)) != - 1) {
			out.write(buffer, 0, length);
		}
		out.close();
	}

}
```


----------



## HakkePeter (8. Jan 2009)

sieht gut aus... jetzt bekomm ich allerdings immer 

"java.io.IOException: Das System kann den angegebenen Pfad nicht finden"

Das Bild ist auf dem Server Definitiv vorhanden!? Also auch die Adresse, weil mit dem Explorer kann ichs öffnen.
Der Pfad auf meinen rechner ist "F:\\temp"

ansonsten hab ich absolut nichts geändert an deinem Beispiel, das musste ich soweit ich das sehe auch nicht.

Also funktionierts nich soooo 100%

Tipps? Phade hab ich jetzt verschiedene benutzt...


----------



## Gelöschtes Mitglied 5909 (8. Jan 2009)

das bild beim beispiel oben wird im unterordner /icons/ho/ gespeichert, da ich url.getPath() verwendet habe. entweder du erstellst die Verzeichnisse, oder du parst dan bildnamen da raus.


```
int index = url.getFile().lastIndexOf("/");
		String path = url.getFile().substring(index);
		File file = new File(outputFolder, path);
```


----------



## Guest (8. Jan 2009)

das rausparsen würde doch mit .getFile().toString funktionieren odeR??


----------



## Gelöschtes Mitglied 5909 (8. Jan 2009)

edit siehe code vom post drüber =)


----------



## Guest (8. Jan 2009)

jo is mir dann auch aufgefallen *g*

jetz hab ich das problem ... was wenn ein bild nich vorhanden is? er speichert trotzdem ein bild mit 1kb größe...
is jetzt nicht sehr vorteilhaft


----------



## Gelöschtes Mitglied 5909 (8. Jan 2009)

tjo dann musst du wohl entweder schaun dass du keine urls nimmst die kaputt sind oder du verwendest den apache commons httpclient und prüfst den http statuscode

http://hc.apache.org/httpclient-3.x/


----------

