2009-12-14 7 views
2

Je suis essayer de télécharger des fichiers image à partir d'URL à partir du code suivant, mais il ne renvoie pas le bon contenu du serveur. L'image peut être rendue dans le navigateur en chargeant l'url ou téléchargée en utilisant curl en mode shell, mais pas en exécution php. Dans l'exécution php, le type de contenu de l'en-tête renvoyé par le serveur est 'text/html' au lieu de 'image/jpeg', ce qu'il suppose être.utiliser curl pour télécharger le fichier image indirect

Quelqu'un a des idées à ce sujet?

$url = 'http://count.koubei.com/showphone/showphone.php?f=jpg&w=104&h=10&bc=255,255,255&fc=0,0,0&fs=10&fn=arial&phone=LTIxMDM3MjIyOTc%3D%23dWBzmKEZpTh7YcWvOw%3D%3D'; 
$file_handler = fopen('phone.jpeg', 'w'); 
$curl = curl_init($url); 
curl_setopt($curl, CURLOPT_FILE, $file_handler); 
curl_setopt($curl, CURLOPT_HEADER, false); 

curl_exec($curl); 

curl_close($curl); 
fclose($file_handler); 
+0

Je viens de tester votre code et l'image téléchargée correctement. – Juan

+0

le fichier image peut-il être correctement ouvert. sur mon mac, la taille téléchargée du fichier est de seulement 20 octets, ce qui n'est pas la taille d'origine. – Katat

+0

Je l'ai ouvert et c'était comme si je l'avais ouvert sur le navigateur. C'est peut-être un problème de configuration de boucle. – Juan

Répondre

5

pourquoi ne pas simplement utiliser file_get_contents comme celui-ci

$img = file_get_contents("http://count.koubei.com/showphone/showphone.php?f=jpg&w=104&h=10&bc=255,255,255&fc=0,0,0&fs=10&fn=arial&phone=LTIxMDM3MjIyOTc%3D%23dWBzmKEZpTh7YcWvOw%3D%3D"); 
file_put_contents("photo.jpg",$img); 
+0

c'est beaucoup plus simple! – Katat

+2

Cela ne fonctionne que si votre serveur autorise 'url_fopen' (je pense que c'est le nom de la directive ini). –

+1

Le nom de la configuration est 'allow_url_fopen' :) – Nick

Questions connexes