我正在构建一个imgur镜像 - 即如果有人想在我的域上查看imgur.com/asdf.jpg,他们只需访问mydomain.com/asdf.jpg即可打开图像。这是我到目前为止的代码片段;但是,它要求我下载文件,而不是在浏览器中将其作为图像输出。寻求这个问题的帮助。感谢。
var express = require('express');
var request = require('request');
var router = express();
router.get('/*', function(req, res) {
var image = "http://i.imgur.com/"+req.params[0];
console.log(image); // captures correctly the image name
request
.get(image)
.on('response', function(response) {
res.writeHead(response.statusCode, "{\'Content-Type: \'"+response.headers['content-type']+"\'}");
})
.pipe(res);
});
... some server stuff
答案 0 :(得分:1)
如果问题在于设置内容类型,您可以使用以下代码设置内容类型:
res.set('Content-Type', 'image/jpeg');
或者您可以使用:
res.sendFile(fileName, options, function (err) {
if (err) {
console.log(err);
res.status(err.status).end();
}
else {
console.log('Sent:', fileName);
}
});
根据文件扩展名将内容类型设置为docs suggest。