Autor Zpráva
Hitman
Profil
Dobrý den,

chtěl bych použít funkci copy() ke kopírování obrázku a uložení do adresáře. Následující kód mi ale vypíše chybu:

$adresa= 'http://nejaka.adresa.com/obrazky/logo_velke.png';

copy($adresa, 'obrazek.png');

Warning: copy() [function.copy]: Unable to access http://nejaka.adresa.com/obr/logo_velke.png in /mnt/data/accounts/r/ucet/data/www/.../index.php on line 5

Na řádku 5 je samozdřejmě copy. Oprávnění složky ve které script je mám na 777. Může být chyba na serveru?
Jan Tvrdík
Profil
Hitman:
Je na serveru povolené allow_url_fopen?
Hitman
Profil
Lze to nějak zjistit?

Přidal jsem do htaccess "php_value allow_url_fopen On", ale situace je stále stejná.
Keeehi
Profil
Hitman:
Lze to nějak zjistit?
<?php phpinfo(); 
Hitman
Profil
Tak allow_url_fopen jsem povolil. allow_url_include je zakázané.

Nicméně hláška se nezměnila, je stále stejná...
Keeehi
Profil
Verze PHP? Kopírování nelokálních souborů umí copy od verze 4.3.0.
Existuje vůbec ta URL? Resp. je ze serveru dosažitelná? Co ukáže
print_r(get_headers($adresa));
Hitman
Profil
PHP Version 5.3.29-pl0-gentoo.

Ten Váš příkaz vypíše:

Array ( [0] => HTTP/1.1 200 OK [1] => Date: Tue, 28 Apr 2015 20:14:26 GMT [2] => Server: Apache [3] => Last-Modified: Fri, 10 Apr 2015 23:34:35 GMT [4] => ETag: "3a33-5136734fb58c0" [5] => Accept-Ranges: bytes [6] => Content-Length: 14899 [7] => Content-Type: image/png ) 

//hosting je u savany, kdyby to něčemu pomohlo...
Keeehi
Profil
Hitman:
No jediné co už by mohlo být špatně je načtena stará konfigurace. Restart jsi zkoušel? Aha, hosting, tak nic. Takže bych zkusil napsat na podporu.
Hitman
Profil
Restart serveru? Zkusím..

// tak bohužel, stále stejná chyba. Takže řešit asi s podporou hostingu, že?
Jan Tvrdík
Profil
Hitman:
Můžeš zkusit o trochu delší, ale jinak v podstatě ekvivalentní kód.

$from = fopen($adresa, 'r');
$to = fopen('obrazek.png', 'w');
stream_copy_to_stream($from, $to);



Možná to souvisí bugs.php.net/bug.php?id=46888. Je na serveru zapnutý safe mode?
Hitman
Profil
Jan Tvrdík:

Díky, tímto je problém vyřešen. Po vypnutí safe mode funguje i copy(), výše uvedené řešení funguje i při zapnutém safe mode.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0