1

リモートサイトから画像を保存する必要があります。私のホストは file_get_contents を許可していないので、curl で試しています。コードで破損した画像を取得しています。助けてください!

   $destination = realpath("../../app/webroot/img/uploads") . "/" . $facebook_id . "." . "gif";

    // Delete previous pic
    if (file_exists($destination)) {
        unlink($destination);
    }

    // Save new pic
    $remoteUrl = "https://graph.facebook.com/" . $facebook_id . "/picture";

    $ch = curl_init($remoteUrl);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
    $rawdata = curl_exec($ch);
    curl_close($ch);
    $fp = fopen($destination, 'w');
    fwrite($fp, $rawdata);
    fclose($fp);
4

2 に答える 2

1

お使いのサーバーは、graph.facebook.com を、何らかの理由で接続していない IPv6 アドレスに解決しているようです。php5.3+ を使用している場合は、curl に強制的に IPv4 を使用させることができます。

curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);

于 2013-03-14T00:02:31.320 に答える
1

$fp = fopen($destination, 'wb');

代わりに、それらをバイナリ ファイルとして開きます。:)

于 2013-03-13T21:44:49.810 に答える