Bilder vom externen Server speichern

KMX-Robin

Erfahrenes Mitglied
Hi,

ich habe ein Problem. Ich will ein Bild, welches nicht auf meinem Server liegt, auf meinen server kopieren. Also im prinziep wie copy(); eben nur extern.

Ich habe ein Script geschrieben, dass die head info bei einem bild ausließt, damit ich die Dateigröße ermitteln kann. Das sieht wie folgt aus.

PHP:
function GetExternImageSize($url) 
{ 
	if(substr($url,0,7) == "http://")$url = substr($url,7);

	$p = strpos($url,"/"); 

	$host = substr($url,0,$p); 
	$file = substr($url,$p); 
	$size = -1; 
	$errno = 0; 
	$errstr = ""; 

	$fp = fsockopen($host, 80, &$errno, &$errstr, 30); 

	if(!$fp)
	{ 
		echo "$errstr ($errno)<br>\n"; 
	} 
	else
	{ 
		fputs($fp,"HEAD $file HTTP/1.0\n\n"); 
		while(!feof($fp))
		{ 
			$line = fgets($fp,128); 
			
			if (substr($line,0,16) == "Content-Length: ")
			{ 
				print substr($line,16); 
				$size = substr($line,16); 
			} 
		} 
		fclose($fp); 
	}

	return $size * 1; 
}

Das Problem ist, das dieses Script mal fuktioniert und mal nicht ;( Weiß eventuell jemand warum ?

Bzw - oder hat jemand ein Script das ein Bild vom externen Server auf den eigenen kopieren ? Wäre natürlich noch besser.

Gruß Rob
 
Bitteschön!

PHP:
$picture_to_get = "http://www.tutorials.de/images/tutorials_v3_logo.gif";

$extension = strrchr($picture_to_get,".");

ob_start();
$fp = fopen($picture_to_get, "rb");
fpassthru($fp);
fclose($fp);
$file = ob_get_contents();
ob_end_clean();
$f1 = "now_its_my_file".$extension;
$fp = fopen("/home/www/foobar/foobar/kunden/pics/".$f1, "wb+");
fwrite($fp, $file);
fclose($fp);

Sollte funktionieren ...

mfg

ultra
 
Zurück