我使用php的imagejpeg将GD图像资源保存到文件中,这样做:
imagejpeg($im, '../images/' . $image_id . '.jpg');它工作正常,但根据我的浏览器,它试图将文件读取为文本/纯文本:
资源被解释为图像,但使用MIME类型的文本/平原传输。
在保存文件之前是否有一个步骤,以确保它使用的是正确的类型?
我正在使用windows (XAMPP),这会是Windows问题吗?编辑:不。我刚在linux服务器上进行了测试。
就实际显示而言,它只是普通的html。我的上传代码应该在服务器中作为一个普通的jpeg文件来saves=。只是没有用合适的哑剧类型来保存它。
谢谢
发布于 2009-10-13 15:00:53
AFAIK,Apache服务器--标准的开箱即用配置--应该完全基于文件扩展名发送内容类型的头文件。Apache甚至不应该查看内容或它最初是如何生成/存储的。
在我的开箱即用的Apache2上,文件conf/mime.type包含以下行:
image/jpeg jpeg jpg jpe
哪一个应该这么做,对吧?
你能发布一个测试用例吗?比如说,一个简单的html页面有两个img标记:一个用于生成图像,另一个用于标准图像,看起来很好?
最后一个想法:它是否发生在所有浏览器中?也许这是浏览器的问题,不是服务器的问题?
发布于 2009-10-13 01:44:48
这听起来像是在将文件的内容转储给浏览器,而不是告诉浏览器它是哪种类型的文件。在将图像输出到浏览器之前,尝试添加一个内容类型的标题:
header('Content-type: image/jpeg');发布于 2009-10-13 02:27:08
您确定没有使用错误的文件扩展名吗?否则,只需在服务器中放置一个正常的映像,并确保mime-类型配置正确。还可能是操作中的图像数据被破坏了。
https://stackoverflow.com/questions/1557848
复制相似问题