尝试使用内容类型图像/ jpeg进行回复时图像损坏

时间:2015-09-08 07:57:09

标签: html node.js image express routing

在我的前端HTML中,我想要一个带有'/ uploads / profilePicture'来源的img标签。在node / express中处理请求时,我想对用户进行身份验证,从文件系统加载用户的个人资料图片并使用图像数据进行响应。我的代码基本归结为:

app.get('*', function(req, res, next) {
    /* Some code leading to the function getProfilePicture */
});

function getProfilePicture(req, res, next) {
    loadFile('uploads/' + req.user.local.picture, function(image) {
        res.writeHead(200, { 'Content-Type': 'image/jpeg' });
        res.end(image);
    });
};

当代码运行时,前端显示图像损坏,但控制台中没有打印错误。

有趣的是,这对我有用。不久之前,我的路由代码不太通用,因为它在我的网站上为每个页面使用了app.get()。所以我使用app.get('/uploads/profilePicture')代替app.get('*')。这可能是问题吗?

修改

我正在使用Node v0.10.35并表达3.0.6。

编辑2:

使用Express 3.19.1测试,仍然无效。

1 个答案:

答案 0 :(得分:0)

事实证明,使用res.sendfile可以解决问题。

void push(proxy value)
{
    if (top == 49) puts("'a' stack overflow"), exit(1);
    else a[++top] = value;
}

proxy pop()
{
    if (top == -1) return (proxy){-234};
    else return a[top--];
}

任何解释为什么sendfile工作但不是setHeaders + end将不胜感激!