8

在构建 HTML 模板或修改网站时,我们都讨厌 Internet Explorer。好吧,我最近构建了一个 PHP 图像脚本来隐藏 URL 的位置。它适用于 Firefox、Chrome 甚至 Safari。

Internet Explorer 拒绝显示来自 PHP 脚本的图像。它甚至没有给出损坏的图像图标。简单的空白方块。

Android 也有同样的问题,但我可以在另一个时间解决这个问题,并且可能是相关的。

这是我的图像脚本代码:

$image_id = $_GET['id'];

include "mysql_connect.php";
$sql = "SELECT * FROM images WHERE code='$image_id'";
$result = mysql_query($sql);
$r=mysql_fetch_array($result);

$imagepath=$r['path'];

// Produce proper Image
header("Content-type: image/jpeg");

echo file_get_contents("$imagepath");

我在谷歌和这个网站上搜索了高低。找不到可靠的来源来解释 Internet Explorer 不显示图像的原因。

任何帮助是极大的赞赏。

4

4 回答 4

10

Content-Type 标头名称是用大写的 T 编写的。我不确定这是否是问题所在,但某些浏览器在使用小写 t 编写的 Content-Type 标头时可能无法识别。因此,您应该使用:

header("Content-Type: image/jpeg");

其他可能有问题的事情是,当您尝试显示不是 jpeg 而是 png 或 gif 的图像时,同时提供 image/jpeg 内容类型标题。因此,您应该确保为浏览器提供正确的内容类型。

于 2013-01-03T23:01:02.557 回答
2

Internet Explorer 使用 mime 类型image/pjpeg。您pjpeg用于 IE 和jpeg其他浏览器。

header("Content-Type: image/pjpeg");

来源:image/pjpeg 和 image/jpeg

于 2013-01-03T23:02:28.103 回答
0

设置内容长度标头。

header("Content-Length: " . filesize($imagepath));
于 2013-01-03T23:04:08.870 回答
-1

我想我知道问题是什么。

Internet Explorer 希望您使用 image/jpeg 而不是 image/jpg。

尝试这个:

Header("Content-Type: image/jpeg"); 

所有浏览器都接受这种格式,您再也不用担心了。

于 2013-08-07T20:26:34.647 回答