0

私は3つのファイルを持っています

  1. upload.html //サーバーに画像をアップロードします
  2. check_image.php //プレビューが必要な場合は、フィルタを使用して画像を保存するかプレビューするかを決定し、filter.php を呼び出します
  3. filter.php //画像に何らかのフィルターを作成し、check_image.php に戻ります //後で「filter.php」を呼び出します

フィルタリングされた画像出力のプレビューに問題があり、画像が画面に表示されません。画像をリロードしようとすると、次のメッセージが表示されます。エラーが含まれているため、画像を表示できません。どうすればこの問題を解決できますか? 私のfilter.phpコードは次のとおりです。

<?php
. . .
if (isset($_GET['id']) && ctype_digit($_GET['id'])
    && file_exists($dir . '/' . $_GET['id'] . '.jpg')
) {
    $image=imagecreatefromjpeg($dir . '/' . $_GET['id'] . '.jpg');
} else {
    die('Invalid image specified!');
}
//apply the filter
$effect = (isset($_GET['e'])) ? $_GET['e'] : -1;
switch($effect) {
    case IMG_FILTER_NEGATE:
    . . .
}

//show the image

header('Content-Type: image/jpeg');
imagejpeg($image, '', 100);
?>

この問題は header() 関数が原因だと思います 助けてください

4

1 に答える 1

0

ヘッダーにわずかなタイプミスがあります。次のように変更します。

header("Content-Type:image/jpeg"); //note the no space after the colon.
header("Cache-Control:max-age=17280000, public"); //so as to enable caching - in most cases you do want this.

また、header() の前に出力がないことを確認してください。そうしないと失敗します。

(ただし、完全なコードがなければ、もちろんテストできません。提供したばかりのコードが私のユースケースで機能することはわかっています。) HTH

于 2013-08-17T19:08:48.440 に答える