正如问题标题所解释的,我需要根据文件扩展名过滤上传的文件。所以,我浏览了官方文档并搜索了这个网站。
我试过的
我已经尝试过遇到的解决方案。文件正在成功上传,但问题是如何过滤文件。目前我的 Router.js 文件看起来像这样。
路由器.JS
var multer = require('multer');
var storage = multer.diskStorage({ //multers disk storage settings
destination: function (req, file, cb) {
cb(null, './public/uploads/')
},
limits:{
files: 1,
fileSize: 1024 * 1024
},
filename: function (req, file, cb) {
var datetimestamp = Date.now();
cb(null, file.fieldname + '-' + datetimestamp + '.' + file.originalname.split('.')[file.originalname.split('.').length -1])
},
onFileUploadStart: function(file) {
console.log("Inside uploads");
if (file.mimetype == 'image/jpg' || file.mimetype == 'image/jpeg' || file.mimetype == 'image/png') {
return true;
}
else
{
return false;
}
}
});
var upload = multer({ //multer settings
storage: storage
}).single('profilepic');
router.post('/profile', function(req, res){
upload(req,res,function(err){
if(err)
{
console.log(err);
}
else
{
console.log("Image was uploaded");
}
});
});
我尝试在 onFileUploadStart
中回显某些内容,以检查它是否进入该功能。但事实并非如此。除了 onFileUploadStart
之外,我还尝试 fileFilter
如此 链接 所述,但没有帮助。任何建议如何解决这个问题?提前致谢。
原文由 A J 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用
multer
的示例:摘自 Node.js - 文件上传。最初的作者是 Iceman 和 Mikhail 。可以在 贡献者页面 上找到归属详细信息。源代码在 CC BY-SA 3.0 下获得许可,可以在 文档存档 中找到。参考主题 ID:4080 和示例 ID:14210。