Autor Zpráva
Celebi
Profil
Šlo by udělat nějaký skript v php, který automaticky uloží nějaký soubor (obrázek) do počítače/na web - Prostě zadám adresu obrázku, který je na nějakém jiném webu a skript ho automaticky uloží do vybraného adresáře počítače, příp. do vybraného adresáře na web. Jak to udělat?
Jde o použitelnost při ukládání např. 20 obrázků najednou, aby se nemuselo u každého obrázku dát Uložit jako a znova a znova.
nightfish
Profil
ano, je to možné

curl v kombinace s fwrite ti pomůže
nightfish
Profil
// $url obsahuje url obrazku, ktery chces ulozit
//$outfile obsahuje cestu k souboru, kam chces obrazek ulozit
$ch = curl_init($url);
$fp = fopen($outfile,"w");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
$data = curl_exec($ch);
fwrite($fp,$data);
fclose($fp);
curl_close($ch);
Acci
Profil
Já bych použil raději file_get_contents a file_put_contents, je to pak mnohem jednodušší.

$soubor = file_get_contents($url);
file_put_contents($outfile, $soubor);

Bacha ale na funkci file_put_contents, funguje až od PHP verze 5
nightfish
Profil
pokud člověk nepotřebuje nějaké speciálnosti (jako třeba funkční cookies při stahování obrázků), tak je řešení od Acciho jednodušší, to je fakt...
Celebi
Profil
Tak mi řekněte, kde dělám chybu. Tento skript mám uložen v souboru test.php5. Na serveru by php5 fungovat mělo (ic.cz).
Skript vypadá takto:
<?
$url="http://www.pokemonelite2000.com/pkfrlgsh001.png";
$outfile="/images/pokedex/shinyfrlg/001.png";
$soubor=file_get_contents($url);
file_put_contents($outfile, $soubor);
?>

A hlásí mi to: Warning: file_put_contents(/images/pokedex/shinyfrlg/001.png) [function.file-put-contents]: failed to open stream: No such file or directory in /home/free/ic.cz/p/mojestranka/root/www/test.php5 on line 5.
Toto téma je uzamčeno. Odpověď nelze zaslat.