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 回答