OVH Cloud OVH Cloud

copie d'image distante

3 réponses
Avatar
Nicolas Moreau
Bonjour,

j'essaie de faire une copie d'image distante,
je ne peux pas utiliser copy avec url car je ne suis pas sur de la
version php qui sera utilisée,
j'ai essayé avec un fopen / fwrite mais l'image créée comporte des
erreurs et des fois la taille diffère de l'originale,

des pistes ?

'ci d'avance

--
Nicolas Moreau

3 réponses

Avatar
Thibaut Allender
"Nicolas Moreau" wrote in message
news:3f7a95e2$0$2783$
Bonjour,

j'essaie de faire une copie d'image distante,
je ne peux pas utiliser copy avec url car je ne suis pas sur de la
version php qui sera utilisée,
j'ai essayé avec un fopen / fwrite mais l'image créée comporte des
erreurs et des fois la taille diffère de l'originale,

des pistes ?


attention !

l'utiliation de fread() sur des fichiers distants est particuliere, et la
doc en francais n'est pas a jour a ce sujet !!

la bonne explication :
http://www.php.net/manual/en/function.fread.php

la mauvaise en francais :
http://www.php.net/manual/fr/function.fread.php

a+

--
+ thibaut allender // web design + php dev + digital photo
+ http://www.capsule.org

Avatar
CrazyCat
Nicolas Moreau wrote:
j'essaie de faire une copie d'image distante,
je ne peux pas utiliser copy avec url car je ne suis pas sur de la
version php qui sera utilisée,
j'ai essayé avec un fopen / fwrite mais l'image créée comporte des
erreurs et des fois la taille diffère de l'originale,


J'utilise ceci sans erreur:

$file = @fopen($d_img, "r"))
$fimage = fopen($l_img,"w");
while (!feof($file)) {
$img = fread($file,1000000);
fwrite($fimage,$img);
}
fclose($file);
fclose($fimage);

avec $d_img = url de l'image distante et $l_img = fichier local
--
CrazyCat from C-P-F.org

Avatar
Nicolas Moreau
CrazyCat wrote:

[upload image distante]
$file = @fopen($d_img, "r");
$fimage = fopen($l_img,"w");
while (!feof($file)) {
$img = fread($file,1000000);
fwrite($fimage,$img);
}
fclose($file);
fclose($fimage);

avec $d_img = url de l'image distante et $l_img = fichier local


merci pour le code.
pour ceux sous windows, pensez à utiliser 'rb' et 'wb'.

--
Nicolas Moreau