我正在工作的simple server可以提供图像服务。当直接浏览图片URL时,Chrome会提供下载图片,而不是直接在浏览器中显示。为什么会这样呢?大概是标题里的什么东西吧?
相关代码如下:
tilestore.getTile(req.param("z"), req.param("x"), req.param("y"), function(err, tile) {
if (!err) {
res.send(tile);
} else {
res.send("Tile rendering error: " + err + "n");
}
});
我需要在标题中添加一些东西吗?目前的情况如下:
HTTP/1.1 200 OK
Server: nginx/1.4.6 (Ubuntu)
Date: Mon, 01 Sep 2014 07:22:30 GMT
Content-Type: application/octet-stream
Content-Length: 37779
Connection: keep-alive
X-Powered-By: Express
ETag: W/"9393-1937584155"
3条答案
按热度按时间4si2a6ki1#
好的,这很简单。只需设置
content-type
:这些图像始终是
.png
。新标头:
zwghvu4y2#
刚刚遇到了同样的问题,并发现仅修改内容类型是不够的。This answer试图做相反的事情,提供了解决方案。我还需要添加一个
content-disposition
头文件:res.set("Content-Disposition", "inline;");
,并设置正确的内容类型,这允许我显示我的图像而不是下载。voj3qocg3#
我在处理
svg
图像文件时也遇到了同样的问题,结果我不得不更改'content-type': 'image/svg'
至
'content-type': 'image/svg+xml'