2

file_get_contents()遠い URL から画像を取得し、fwrite 関数を使用してローカル フォルダーに保存するために使用する wordpress プラグインを開発しました。画像ファイルはローカル フォルダーに保存されるため、後で参照できます。

これは 1 つの Web サーバー 1 で正常に動作します。しかし、別の新しい Web サーバー 2 で維持されている wordpress にプラグインをインストールすると、ローカル フォルダーにファイルが作成されますが、破損しているようです。ファイルは100kb未満の画像に対して適切に作成されると思いますが、以前のWebサーバー1で適切に作成されたより大きなファイルは、サーバー2で取得して作成すると破損します.

以下は、画像を取得してローカルフォルダーに保存するために使用するコードです。

//$imgurl = url of the image file and $upload_path 
// is path where image will be stored

$file = file_get_contents($imgurl) or die('File too large or inacessible');
$myFile = $upload_path . "\internal\folder\structure\\" . $file_name;
$fh = fopen($myFile, 'w') or die("Error");
$fwrite = fwrite($fh, $file);

if($fwrite === false)
{
    echo "error";
}
else
{
    echo "file has been created ".$file_name;
}

fclose($fh);

サーバー 1 では問題なく動作しますが、サーバー 2 ではファイルが作成されますが、破損しているため開くことができません。これはおそらくサーバー 2 の php 構成に関係していると思いますが、よくわからないので、あなたの助けを楽しみにしています。

4

1 に答える 1

0

いくつかの理由が考えられます

  1. server2 上の何かによって生成された PHP エラー

  2. 関数の前の改行やスペースなどの出力

ヒントについてはhttp://php.net/manual/en/function.file-get-contents.phpをお読みください

于 2012-10-16T13:05:50.243 に答える