php图像JPEG mime类型

php图像JPEG mime类型,php,image,gd,Php,Image,Gd,我正在使用php的imagejpeg将GD图像资源保存到一个文件中,这样做: imagejpeg($im, '../images/' . $image_id . '.jpg'); 它工作正常,但根据我的浏览器,它尝试以文本/普通格式读取文件: 资源被解释为图像,但使用MIME类型text/plain传输 在保存文件之前,是否有一个步骤是我应该做的,以确保它使用的是正确的我的类型 我正在使用windows(XAMPP),这可能是windows的问题吗? 编辑:没有。我刚刚在linux服务器上进行

我正在使用php的imagejpeg将GD图像资源保存到一个文件中,这样做:

imagejpeg($im, '../images/' . $image_id . '.jpg');
它工作正常,但根据我的浏览器,它尝试以文本/普通格式读取文件:

资源被解释为图像,但使用MIME类型text/plain传输

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

我正在使用windows(XAMPP),这可能是windows的问题吗? 编辑:没有。我刚刚在linux服务器上进行了测试

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


谢谢

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

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

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

AFAIK,Apache服务器(采用标准开箱即用配置)应纯粹根据文件扩展名发送内容类型头。Apache甚至不应该查看内容或者它最初是如何生成/存储的

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

image/jpeg-jpg-jpe

哪一个应该这样做,对吗

你能发布一个测试用例吗,比如说,一个简单的html页面,上面有两个img标签:一个用于生成的图像,另一个用于看起来工作正常的标准图像


最后一个想法是:它会出现在所有浏览器中吗?可能是浏览器的问题,而不是服务器的问题?

不,不,我实际上是用旧的方式显示图像的:。我的上传脚本保存一个静态jpeg文件。我的文件扩展名是.jpg。我刚刚通过手动上传图像进行了测试,mime类型在那里是正确的。这实际上是关于php在服务器上保存图像的方式。有什么消息吗?