从NodeJs获取上传的文件

时间:2015-10-30 04:20:07

标签: angularjs node.js mean-stack

我正在尝试检索上传到服务器的文件而没有运气。我得到了:403 - forbidden错误。 (我对NodeJs很新)

这是NodeJS代码:

// Get Thumbnail Images
router.param('imageName', function(req, res, next, imageName) {
    req.imageURL = "../uploads/thumbnails/" + imageName;
    return next();
});

router.get('/tn/:imageName', function(req, res) {
    var options = {
        root: __dirname
    };
    res.sendFile(req.imageURL, options);
});

这是HTML代码:

<img ng-src="/tn/{{ card.backImg }}" class="" alt=""/>

另外我试图在我的app.js中添加这一行:

app.use(express.static(path.join(__dirname, 'uploads')));

我不确定这种情况的最佳做法是什么(所有用户都可以访问上传的图片)。那么请您提供有关公共文件夹,静态和最佳实践的一般说明。

提前谢谢。

1 个答案:

答案 0 :(得分:0)

我认为下面的源代码能够适用于您的案例:

app.get('/tn/:imageName', function(req ,res) {
    var path = require('path');
    var file = path.join(__dirname, "/../uploads/thumbnails/" , req.params.imageName);
    res.sendFile(file);
});

注意:我使用的是ExpressJS 4.0