php imagejpeg mime类型

时间:2009-10-13 01:43:21

标签: php image gd

我正在使用php的imagejpeg将GD图像资源保存到文件中,执行此操作:

imagejpeg($im, '../images/' . $image_id . '.jpg');

它工作正常,但根据我的浏览器,它尝试将文件读取为text / plain:

  

资源被解释为图像但以MIME类型text / plain传输。

在保存我应该做的文件之前是否有一个步骤以确保它使用正确的我的类型?

我正在使用Windows(XAMPP),它可能是Windows问题吗? 编辑:不。我刚刚在linux服务器上测试过。

就实际显示而言,它只是简单的html。 我的上传代码应该保存=文件作为服务器中的普通jpeg。它只是没有用正确的mime类型保存它。

由于

3 个答案:

答案 0 :(得分:1)

AFAIK,Apache服务器 - 采用标准的开箱即用配置 - 应该纯粹基于文件扩展名发送内容类型的标头。 Apache甚至不应该查看内容或它最初生成/存储的方式。

在我开箱即用的Apache2上,文件conf / mime.types包含以下行:

image/jpeg jpeg jpg jpe

应该这样做,对吧?

你可以发一个测试用例,例如一个带有两个img标签的简单html页面:一个用于生成的图像,一个用于标准图像,似乎工作正常吗?

最后一个想法:它是否会在所有浏览器中出现?也许这是一个浏览器问题,而不是服务器问题?

答案 1 :(得分:0)

听起来你正在将文件的内容转储到浏览器,而不是实际告诉浏览器它是什么类型的文件。在将图像输出到浏览器之前,请尝试添加Content-type标头:

header('Content-type: image/jpeg');

答案 2 :(得分:0)

您确定没有使用错误的文件扩展名吗? 否则,只需在服务器中放置一个普通图像,并确保正确配置了mime-types。 也可能是您操作的图像数据已损坏。