ben*_*nto 4 file-upload image node.js express
我正在使用express.js和node处理文件上传,并且具有基本功能.我需要的是实施一些安全措施 - 即限制上传到某些格式(PNG,JPEG).有一种简单的方法只允许某些格式吗?它会进入身体解析器吗?
app.use(express.bodyParser({
uploadDir: __dirname + '/public/uploads',
keepExtensions: true }));
app.use(express.limit('4mb'));
Run Code Online (Sandbox Code Playgroud)
我还应该考虑其他任何安全措施吗?从图像中擦除EXIF数据通常是个好主意吗?
谢谢,
本
根据connect的文档bodyParser,任何选项也会传递给强大的,它执行实际的表单解析.
根据强大的文档,您可以传递自己的onPart处理程序:
incomingForm.onPart(部分)
如果您有兴趣直接访问multipart流,则可以覆盖此方法.这样做会禁用任何"字段"/"文件"事件处理,否则会使您完全负责处理处理.
Run Code Online (Sandbox Code Playgroud)incomingForm.onPart = function(part) { part.addListener('data', function() { // ... }); }如果你想使用强大的只为你处理某些部分,你可以这样做:
Run Code Online (Sandbox Code Playgroud)incomingForm.onPart = function(part) { if (!part.filename) { // let formidable handle all non-file parts incomingForm.handlePart(part); } }
总而言之,你应该能够做到这样的事情:
function onPart(part) {
if(!part.filename || part.filename.match(/\.(jpg|jpeg|png)$/i)) {
this.handlePart(part);
}
}
app.use(express.bodyParser({onPart: onPart});
Run Code Online (Sandbox Code Playgroud)
警告:我还没有测试过这个.