2012-01-26 17 views
2

gd関数を含むウェブサイトにコードをインストールしました。 デバッグ後、私はImagecreatefrompng() - 接続がリセットされたエラー

$src = imagecreatefrompng($s); 

は、サーバが応答する原因になっているという結論に達しました: は、私はにコード変更しても「接続がリセットされました」:

$src = @imagecreatefrompng($s); 

を同じエラーが発生します。 gdライブラリがインストールされ、有効になっているかどうかを確認して、phpのバージョンを確認しましたが、すべて正常です。 error_logには何もありません。 また、ファイルパスは問題なく、ファイルが存在し、他の関数がファイル(fopenやfile_get_contentsなど)にアクセスできるため、権利に問題はありません。

誰でもアイデアはありますか?

編集: ファイルはローカルサーバー上にあります。

+0

こんにちはアーネスト、これはGDによって引き起こされる可能性のあるもののようなものではありません。問題が依然として続くかどうかを確認するために、基本的なGD phpファイルを作成してみることができますか?ここからのサンプルのようなものを試してみてください。http://php.net/manual/en/function.imagestring.php –

+0

リモートサーバーからイメージを取得しますか?もしそうなら、最初に 'imagecreatefromstring(file_get_contents($ s));'を使うべきです。 (http://php.net/manual/en/function.imagecreatefromstring.php) – Quasdunk

+0

Shai Mishali:リンクしたサイトから最初の例を試してみましたが、結果は成功しました。 –

答えて

1

ええ、コマンドラインでサーバーにアクセスできない場合、これを追跡する頭痛があるかもしれません。気になる2つのこと:

  1. それはそうだ、まだ可能libpngがインストールされていない、またはGDは、PNGのサポート/ wがコンパイルされていませんでした。ブラウザからphpinfo()を実行してgdセクションを検索すると、PNGサポートが有効になりますが表示されます。
  2. 画像がPNG画像ではない可能性があります。私はそれが変わったと知っていますが、これらのことが起きる可能性があります。ファイル名を指定するだけです。.pngはPNGファイルではありません。あなたはImageMagickを持っている場合は、チェックするidentifyプログラムを使用することができ、ここで私のラップトップからの実行です:

    $〜/透明-pixel.png 〜/透明pixel.png PNGの1x1の1x1の+ 0 + 0 8を識別しますbit DirectClass 2.79KB 0.010u 0:00.009

確かに画像がPNGであることを確認するために使用できる他のプログラムがあります。

最後に、VMなどのようなサーバーをシミュレートするローカル環境でスクリプトを動作させることをお勧めします。それはあなたがかなり多くの頭痛を伴うことなくサーバー上の問題を追跡するのを助けるはずです。