从 NodeJs 获取上传的文件
Get Uploaded Files from NodeJs
我正在尝试检索上传到服务器的文件,但没有成功。我得到的是: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')));
我不确定这种情况的最佳做法是什么(所有用户都可以访问上传的图片)。那么请您提供关于 public 文件夹、静态和最佳实践的一般解释。
提前致谢。
我认为下面的源代码可以处理您的案例:
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
我正在尝试检索上传到服务器的文件,但没有成功。我得到的是: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')));
我不确定这种情况的最佳做法是什么(所有用户都可以访问上传的图片)。那么请您提供关于 public 文件夹、静态和最佳实践的一般解释。
提前致谢。
我认为下面的源代码可以处理您的案例:
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