0

ユーザーが写真をアップロードできるサイトを開発しています。

ユーザーが画像の URL (リモートのみ) を挿入したら、URL を取得してサーバーに保存する php に ajax を呼び出します。

問題は file_get_contents です:

一部の画像では接続がタイムアウトしましたが、他の画像ではそうではありません。

そのエラーを私に与えるいくつかの画像は次のとおりです。

私は単純にこの方法でコンテンツを取得しようとしています:

$img   = "http://www.lloydsbaiahotel.it/images/bgtop/03.jpg";
$inbuf = file_get_contents($img);
var_dump($inbuf);

何が問題なのですか?サーバーの一部の構成を変更する必要がありますか?

4

2 に答える 2

1

cURL を使用してみてください。次のように file_get_contents よりも多くのオプションと制御が提供されます。

  $ch = curl_init ($url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
    $raw=curl_exec($ch);
    curl_close ($ch);
    $fp = fopen($save_to,'x');
    fwrite($fp, $raw);
    fclose($fp);
于 2013-08-26T17:28:30.507 に答える
0

file_get_contents() は、低速のネットワーク接続やリモート ファイルを取得するためのリダイレクトを処理しません。カスタム接続タイムアウト値を許可する fsockopen() を使用できます。

ここから詳細情報を入手できます。

curl を使用してリモート ファイルを取得することもできます。curl のマニュアルも参照できます。

于 2013-08-26T16:26:17.477 に答える