0

外部 Web サイトからのユーザーの外観をキャッシュし、同じフォルダーにローカルにキャッシュしようとしています。私はこれまでにこれを思いつきました:

    <?php
  $figure = $_GET['figure'];
    $action = $_GET['action'];
    $direction = $_GET['direction'];
    $head_direction = $_GET['head_direction'];
    $gesture = $_GET['gesture'];
    $size = $_GET['size'];
    $imgFile = "$figure$action$direction$head_direction$gesture$size";
    $imagesPath =  $imgFile;

    if(!file_exists(($imagesPath))) {

        $otherSiteUrl  = "http://sourcewebsite.com/image/look?figure=$figure&action=$action&direction=$direction&head_direction=$head_direction&gesture=$gesture&size=$size";
        file_put_contents($imagesPath, file_get_contents($otherSiteUrl));
        }

 header("Content-Type: image/png");
        readfile($imagesPath);

    ?>

これは今日までしばらく機能しました。理由はわかりません。壊れた画像アイコンを返すだけです。

4

1 に答える 1

0

まず、実行中のスクリプトの現在のディレクトリではなく、これらの画像ファイルを保存するディレクトリを指定する必要がある場合があります。たとえば、画像のサブフォルダーに保存すると、画像パスは次のようになります。

$imagesPath = dirname(__FILE__) . '/imageCache/' . $imgFile;

これには、スクリプトが配置されているディレクトリに「imageCache」というディレクトリを作成する必要があります。

次に、このディレクトリにアクセス許可を設定して、スクリプトがファイルを書き込めるようにする必要があります。Windows の場合はhttp://technet.microsoft.com/en-us/library/bb727008.aspx、UNIXの場合はhttp://www.dartmouth.edu/~rc/help/faq/permissions.html (mac および linux) を参照してください。 )。

于 2013-06-06T15:10:42.660 に答える