2012-03-25 21 views
0

您好,我正在嘗試獲取用戶個人資料圖片,然後根據我的Facebook應用程序要求合併到現有圖片中。爲此,我需要檢查其MIME時間等,但我有檢索和保存圖片的困難。如何保存Facebook用戶顯示圖片到磁盤沒有使用file_get_contents()`?

 $facebook = new Facebook($config); 
     $user = $facebook -> getUser(); 
     if ($user) { 
      $user_profile = $facebook -> api('/me'); 
     } 

     //User Info. Variables: 
     try { 
      $userPpicture = $user_profile[picture]; 
      } 

我們現在我已經檢索到這一點,我想保存在磁盤上的這個形象,所以我可以檢查進一步處理其MIME時間等等,我怎麼能做到這一點?

p.s.由於我的託管服務器限制,我無法使用功能file_get_contents()。所以我需要一個除此之外的解決方案

請幫忙。 謝謝你。


捲曲嘗試:

//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); 
      $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); 

收到此錯誤,同時檢查圖像的MIME類型: Notice: exif_imagetype(): Read error! in

+0

檢查'fopen'啓用 – Baba 2012-03-25 22:08:45

+0

@Baba:沒有'fopen'也將被禁用。任何其他的選擇? – Maven 2012-03-26 05:25:34

回答

1

你被允許使用CURL?

如果是這樣,只要按照http://phpsense.com/2007/php-curl-functions/

+0

我更新了我的代碼,用我的cURL嘗試,我相信工作不正常,請看看。 – Maven 2012-03-26 14:51:50

+0

請自備一個_debug_。 var_dump的返回值,看看是否有一個文件寫入您的服務器,檢查相關的函數返回值,...編輯:CURLOPT_FOLLOWLOCATION可能會丟失。 – CBroe 2012-07-01 13:15:42