externes jpg auf server speichern / fehlerhaft

sandroP

Erfahrenes Mitglied
PHP:
$url = 'http://www.domain/bild2.jpg';
$prefix = 'MeinBild_';

$image = file_get_contents($url);
file_put_contents($prefix . date('d.m.Y') . '.jpg', $image);


Es wird eine Datei erstellt, diese ist aber fehlerhaft :-(

MeinBild_16.06.2011.jpg 16-Jun-2011 11:38 0

-- Die Datei hat keinen Inhalt --
 
schon mal mit fopen() verucht?
Ich weiss egrade nicht ob die mit file_get_contents auf eine url zugreifen kannst
 
URL mit file_get_contents() öffnen ist kein Problem. Das eigentliche Problem ist, das file_get_contents() den Inhalt als String wertet, was im Falle von Bild-Daten, welche von Natur als binär zu behandeln sind, fatal ist. Daher ist das öffnen mit fopen(), fread(), fwrite() und fclose() mit Sicherheit die bessere Alternative.
 
PHP:
$bildpfad = "http://www.domain/bild2.jpg";
$handle = fopen($bildpfad, "rb");
$data = fread($handle, 100000);
fclose($handle);
 
$fp = fopen ("bild.jpg","w");
fwrite($fp,$data);
fclose($fp);

"die Grafik kann nicht angezeigt werden, weil sie Fehler enthält."

Die Datei wird erstellt hat aber keinen Inhalt.
 
Wohl eher so:

PHP:
$quelle = fopen("http://www.domain/bild2.jpg", "rb");
$ziel = fopen("bild.jpg", "wb");

if($quelle && $ziel)
{
  while(!feof($quelle))
  {
    $data = fread($quelle, 1000);
    if($data)
    {
      fwrite($ziel, $data);
    }
  }
  fflush($ziel);
  fclose($ziel);
  fclose($quelle);
}

So ungefähr.
 
ja, hab ich. Leider mit dem gleichen Ergebnis.

Ich möchte einfach das Bild von dieser Webcam auf meinem Server speichern.


Den Dateinamen mittels Timestamp erstellen.
Das ganze soll dann mittels Cronejob alle fünf Minuten aufgerufen werden.
 
Zuletzt bearbeitet:
phpinfo()
sagt!!

allow_url_fopen Off

----------------------------------------

curl wäre verfügbar

cURL support enabled
cURL Information 7.21.0


kann ich es damit auch realisieren?
 
Zurück