PHP标头 - 内容类型:image / jpeg - 不适用于Internet Explorer

时间:2013-01-03 22:52:53

标签: php header file-get-contents

在构建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 个答案:

答案 0 :(得分:9)

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

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

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

答案 1 :(得分:2)

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

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

来源:image/pjpeg and image/jpeg

答案 2 :(得分:0)

设置内容长度标题。

header("Content-Length: " . filesize($imagepath));

答案 3 :(得分:-2)

我想我知道这是什么问题!

IE希望你使用image / jpeg而不是image / jpg。 试试这个: 标题(“Content-Type:image / jpeg”);

事实上所有的浏览器都是这样的!你不必再担心了!