0

image.php が有効な画像ファイルかどうかを判断しようとしています。DB がサイズ変更された画像に関する情報を持っている場合は有効になるため、そうである場合とそうでない場合があります。image.php は元の画像のサイズを変更して画面に出力します。別の方法もあります。データベースにファイル名情報がなく、エラー メッセージまたはエラー画像が表示される場合があります。画像の寸法を取得したいのですが、幅 = 0 で高さ = 0 の場合は、エラー メッセージを出力します。私は getimagesize でそれをやろうとしていましたが、エラーが発生します:

[function.getimagesize]: ストリームを開けませんでした: No such file or directory in ...

パスは 100% 正しいです。PHP を介して動的に作成された画像の画像サイズを取得することは不可能であることを読みました。私はいつでも自分のデータベースをチェックできますが、php を介して動的に作成される画像サイズを取得するためのハックがあるかどうか興味があります。

コード:

$file = "image.php?img=1";
$a = getimagesize($file);
echo 'aaaaaaaaa' . $a;

編集:

解決策がどれもうまくいかなかったため、別の方法で実行しました。データベースに正しいファイル名が存在するかどうかを確認するだけです。

手伝ってくれてありがとう。

4

2 に答える 2

4

URL を要求していることを認識するには、PHP に本格的な絶対 URL を使用する必要があります。image.php?img=1ローカルファイルシステムのみのリクエストです

$file = 'http://example.com/image.php?img=1'; // full-blown HTTP request
$file = 'image.php'; // local-only request

しかし、本格的な http 往復リクエストを行っているため、これはいくぶん非効率的です。そのURLがパスワード/セッションで保護されている場合、最初に「ログイン」する必要があります...

その画像がローカルデータベースからのものである場合は、フェッチロジックを再作成するか、関数呼び出しを介して使用できるようにして、HTTP リクエストを実行せず、スクリプト内で単に「内部」で動作するようにしてから、データを渡す必要があります。既知の画像タイプを受け入れるGDのimagecreatefromstring()に、 imagesx()およびimagesy()関数を使用して高さ/幅を取得します。

于 2012-06-10T18:41:05.533 に答える
1

image.php?img=1システム上の実際のファイルではないため、file_get_contents が必要です

$cont = file_get_contents($file);
$r = imagecreatefromstring($cont);
imagesx($r);
imagerx($r);

もちろん、完全な URL が必要です:http://etc

于 2012-06-10T18:40:20.747 に答える