# externes bild holen und speichern



## ultrakollega (26. März 2003)

Folgende Überlegeung:

ich hab ein Textfeld. dort geb ich den pfad zu irgendeinem
bild ein. "zB: http://www.google.at/images/hp0.gif"

dann soll man auf speichern klicken können und das bild
soll dann in einem ordner auf meinem webserver gespeichert sein.

grund:

ein kunde kann ein bannner anzeigen lassen. dazu gibt er den
pfad ein. wenn jetzt aber der banner, der ja ganz wo anders
liegt mal rausgenommen wird, kann er ja auch bei mir nimmer
angezeigt werden. deswegen möchte ich ihn bei mir speichern,
vollautomatisch wenn's geht.

welche php funktionen sind dazu notwendig?


----------



## Black Hawk (26. März 2003)

schau mal unter php.net nach dem bfehel fopen oder derartiges das sollte dir nuetzten


----------



## ultrakollega (26. März 2003)

die ganzen functionen bzgl. file system laufen nur
einserverseitig denke ich.

ich kann damit zwar ne datei von einem ordner in nen
anderen kopieren, aber von nem anderen server auf meinen
server nicht??

da muss es doch was geben`?


----------



## Matthias Reitinger (26. März 2003)

```
<?
ob_start();
$fp = fopen("http://www.bla.de/blubb/foo.gif", "rb");
fpassthru($fp);
fclose($fp);
$file = ob_get_contents();
ob_end_clean();

$fp = fopen("./foo.gif", "wb+");
fwrite($fp, $file);
fclose($fp);
?>
```


----------



## ultrakollega (26. März 2003)

*supa*

Funktioniert einwandfrei - vielen Dank!


----------



## sheel (1. Mai 2013)

Hi

Mach die Bilddatei mal in einem (Hex-)Editor auf.


----------



## saftmeister (1. Mai 2013)

Du kannst unabhängig davon auch mal curl und ein paar wenig genutzte GD-Funktionen ausprobieren:


```
error_reporting(E_ALL|E_STRICT);
ini_set('display_errors', 1);
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "$bildurl");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_HEADER, 0);

$out = curl_exec($ch);

if(!$out || curl_error())
{
  die(curl_error());
}

curl_close($ch);

$img = imagecreatefromstring($out);
imagepng($img, "Dateiname.png");
```


----------



## AllesVergessen (2. April 2017)

Hallo zusammen,

sorry, dass ich mich hier in den alten thread reinhänge, aber das ist gerade genau mein Thema, denn ich habe in einem shopware-plugin eine $thumburl, die ich von einem Drittanbieter über einen Datencallback erhalte. Die Bilddatei, die dahinter verborgen ist, soll beim plugin-Benutzer auf dem Server gespeichert werden und für weitere shopware-Funktionen dann zur Verfügung stehen.
Ich habe das mit file_get_contents und file_put_contents gelöst, aber das moniert das plugin-Checker Programm, weil es zu unsicher ist. Nun ist meine Frage ist die hier zu sehende Lösung von @saftmeister sicher genug oder wäre es z.b. noch besser das Ganze über den Zend_Http_Client zu lösen und wenn ja wie funktioniert das genau?


----------

