2012-03-26 6 views
1

グラフapiで画像を表示し、cUrlを使用してディスクに保存しようとしましたが、mimeを確認しようとするとこのエラーが発生しますcURLでユーザーの表示画像を取得して保存することができません

Warning: curl_setopt(): CURLOPT_FOLLOWLOCATION cannot be activated when in safe_mode or an open_basedir is set in /var/fog/apps/app12345/myapp.phpfogapp.com/start.php on line 178

01:私はこのエラーを取得しています curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);を使用して、この更新されたコードのための

Notice: exif_imagetype(): Read error! in

//$userPpicture = $user_profile[picture]; 
//Create image instances 
     $url = "http://graph.facebook.com/{$userId}/picture?type=large"; 
     $dpImage = 'temp/' . $userId . '_dpImage_' . rand().'.jpg'; 
     echo $dpImage; 

     function get_data($url) { 
      $ch = curl_init(); 
      $timeout = 5; 
      curl_setopt($ch, CURLOPT_URL, $url); 
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
      curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); 
      curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); 
      $data = curl_exec($ch); 
      curl_close($ch); 
      return $data; 
     } 

     $returned_content = get_data($url); 
     file_put_contents($dpImage, $returned_content); 
     echo "Type: " . exif_imagetype($dpImage); 

:私は保存された画像の種類

この操作でサーバー側の設定が必要な場合は、phpfog以上の共有クラウドストレージを使用しているため、これを行うことができない場合があります。

こんにちは。

ありがとうございます。

+0

画像にアクセスするための許可がアプリケーションに与えられていますか? – Reinard

+0

はいiveすべての必要な権限。 – Maven

+0

@Sir -/id/picture経由の画像は公開されています - Maven - tempディレクトリの画像を見てください - あなたが期待していることを確認してください - またfile_get_contentsを試してください(URLで動作します) – scibuff

答えて

2

使用しているグラフのURLがhttp://graph.facebook.com/4/picture?type=largeの場合、実際のユーザーイメージではなくHTTP 302リダイレクトが返されます。あなたは、リダイレクトに従うと、このように見えるURLであることをURLで画像をダウンロードする必要があります:http://profile.ak.fbcdn.net/hprofile-ak-snc4/49942_4_1525300_n.jpg

+0

返事ありがとうございました。私はcURLにアクション(私の更新されたコードを参照)を許可することで提案に従ってきましたが、今はその新しい警告が表示されています。助けてください。 – Maven

1

OffBySomeが指摘するように、あなたは最終的にgraph.facebook.comが提供する302リダイレクトを実行する必要があり目的地。実際の画像データが含まれています。

この場合、最も簡単な方法は、CURLOPT_FOLLOWLOCATIONをtrueに設定して別のcurl_setopt呼び出しを追加することです。すなわち

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true)

詳細はhttp://us3.php.net/manual/en/function.curl-setopt.phpをチェックしてください。

+0

返事ありがとうございました、それをしましたが、今、私はその新しい警告を受けています。 (私の更新されたコードを見てください)、助けてください。 – Maven

関連する問題