【发布时间】:2016-01-26 13:00:09
【问题描述】:
我正在使用 Multer 上传一些文件,我想知道在上传后保护对这些文件的访问的推荐方法是什么。
我有两种类型的用户;管理员和普通用户。用户只能上传照片,只有管理员可以访问照片的 url。
我上传文件的文件夹结构:./public/uploads/teacher/
这是我的代码:
server.js
// This is auth middleware which checks if access token is valid to access API
app.all('/api/*', [require('./validateReq')]);
app.use('/', require('./routes'));
app.use(express.static('public'));
routes/index.js
var teacher = require('./teachers.js');
router.post('/upload', teacher.uploadAvatar);
routes/teachers.js
var multer = require('multer');
var upload = multer({ dest: 'uploads/teacher/' }).single('avatar');
uploadAvatar: function(req, res) {
upload(req, res, function(err) {
console.log(req.body);
console.log(req.file);
if(err) {
return res.end("Error uploading file.");
}
res.end("File is uploaded");
});
}
如果用户上传文件john_doe.png,我如何将以下网址的访问权限限制为仅限教师/管理员,使其不公开:localhost:8000/uploads/teacher/john_doe.png。在这种情况下,最佳做法是什么?
【问题讨论】:
标签: javascript node.js