我仅在Chrome中面临着一个奇怪的问题。我从服务器获取图像,该图像在Firefox中可以正常工作,但在chrome中,图像会加载一次,然后显示为损坏的图像。

在Chrome的控制台中,我收到以下消息:

Resource interpreted as Image but transferred with MIME type text/html: "http://46.137.249.133:8080/Smart/Request/query.htm?ReqType=SessionUnawareAttachmentDownloadReqType&Thumbnail=Yes&AttachmentRowID=344929138455741006"
GET http://46.137.249.133:8080/Smart/Request/query.htm?ReqType=SessionUnawareAttachmentDownloadReqType&Thumbnail=Yes&AttachmentRowID=344929138455741006


我还检查了mime类型,但它的图像/ jpeg。这是getimagesize()的输出

Array
(
    [0] => 289
    [1] => 202
    [2] => 2
    [3] => width="289" height="202"
    [bits] => 8
    [channels] => 3
    [mime] => image/jpeg
)

最佳答案

这是curl --verbose <your-url>的输出,您可以看到您的Web服务器(在端口8080上)将文件发布为text/html

< HTTP/1.1 200 OK
< Server: Apache-Coyote/1.1
[...]
< Content-Disposition: attachment; filename="Hall2.JPG"
< Content-Type: text/html;charset=ISO-8859-1


您可以通过在每个HTTP响应中添加Content-Type标头行来设置正确的媒体类型来解决此问题。

在PHP中,使用header函数执行此操作,例如:

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


Java Servlet页面非常相似:

HttpServletResponse res;
res.setContentType("image/jpeg");

关于java - 无法在Chrome中加载图片资源,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11981557/

10-12 20:48