header('Content-Type: imagejpeg')在火狐浏览器中无法使用。

问题描述 投票:0回答:1

我试图在我的网页上看到imageefilter()的预览.为此我使用了一个名为 "image_effect.php "的二级页面.这是代码:

<?php
$dir = 'C:\xampp\htdocs\Sviluppare siti web con PHP6, Apache, MySQL\Vari ed Esercizi\images';

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");
}

$effect = (isset($_GET['e'])) ? $_GET['e'] : -1;
switch ($effect) {
    case IMG_FILTER_NEGATE:
        imagefilter($image, IMG_FILTER_NEGATE);
        break;
    case IMG_FILTER_GRAYSCALE:
        imagefilter($image, IMG_FILTER_GRAYSCALE);
        break;
    case IMG_FILTER_EMBOSS:
        imagefilter($image, IMG_FILTER_EMBOSS);
        break;
    case IMG_FILTER_GAUSSIAN_BLUR:
        imagefilter($image, IMG_FILTER_GAUSSIAN_BLUR);
        break;
}

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

显然,通过image_effect.php页面,我可以在不覆盖保存在 "images "中的图片的情况下看到效果。

目录 $dir 是正确的,文件的名称是 $_GET['id'].jpg.如果我在第一页使用预览功能,我无法看到图片,如果我直接打开image_effect.php,结果就是这样。

L’immagine “http://localhost/Sviluppare%20siti%20web%20con%20PHP6,%20Apache,%20MySQL/Vari%20ed%20Esercizi/image_effect.php?id=1&e=1” non può essere visualizzata poiché contiene degli errori.

相反,如果我保存图片的效果,而不显示预览,我可以看到正确的图像。

这是在我的第一页显示图片的代码。

<?php
if ($_POST['submit'] == 'Upload' || $_POST['submit'] == 'Save') {
    $imagename = 'images/' . $image_id . '.jpg';
} else {
    $imagename = 'image_effect.php?id=' . $image_id . '&e=' . $_POST['effect'];
}
?>
<img src="<?php echo $imagename; ?>" style="float: left;">

对不起,我的英语不好,谢谢你的帮助。

php content-type
1个回答
0
投票

我解决了.问题是函数

imagejpeg($image, '', 100);

正确的形式是

imagejpeg($image);

imagejpeg($image, NULL, 100);

如果我使用这个,它可以正常工作。

这个这个 是侧功能的文档。

© www.soinside.com 2019 - 2024. All rights reserved.