Javascript 验证图像宽度&;在节点中上载前的高度,使用Multer表示

Javascript 验证图像宽度&;在节点中上载前的高度,使用Multer表示,javascript,node.js,express,npm,Javascript,Node.js,Express,Npm,我正在Nodejs中构建一个项目,其中express框架和ejs作为视图引擎,我被困在一个需要上传图像的点上,我正在使用Multer,但问题是我想设置一个标准,如果图像高度或宽度小于或大于预设大小(比如70px*40Px),则不将图像上传到服务器,之前我曾使用codeignitor无缝地执行此操作 我可以搜索的所有解决方案都使用GM(Graphics Magick),但这是在通过Multer上传图像后开始使用的。我不是在寻找代码帮助,而是任何关于npm中任何已知插件的建议 注意:我不信任客户端验

我正在
Nodejs
中构建一个项目,其中
express
框架和
ejs
作为视图引擎,我被困在一个需要上传图像的点上,我正在使用
Multer
,但问题是我想设置一个标准,如果图像高度或宽度小于或大于预设大小(比如
70px*40Px
),则不将图像上传到服务器,之前我曾使用codeignitor无缝地执行此操作

我可以搜索的所有解决方案都使用GM(Graphics Magick),但这是在通过Multer上传图像后开始使用的。我不是在寻找代码帮助,而是任何关于npm中任何已知插件的建议


注意:我不信任客户端验证,即使我使用了客户端验证,我仍然保持服务器端验证工作,因此我也在寻找服务器端解决方案。

在客户端,您可以将文件读入新的IMG元素。然后可以检查图像元素的宽度和高度

JSFiddle:


您必须信任客户端验证或允许将映像上载到服务器。但是,您可以对文件大小和mime类型设置合理的限制,以获得所需图像的分辨率,如果不符合要求,则可以拒绝specifications@charsi是正确的-你不能两全其美。如果您选择服务器端,并希望使用nodejs解决方案(即没有GM依赖项),以验证图像的宽度/高度,请查看。访问上述属性可用于帮助验证(即
image.bitmap.width;
image.bitmap.height;
)。我已经在multer&gm上实现了同样的功能,并且刚刚编写了一个代码,这样,如果图像的尺寸不符合要求,它将在发送错误消息之前自动删除。这是客户端,multer mate中的情况如何?@gaurav komar在上传之前询问,因此它必须在客户端。在到达服务器之前。我想是的。
$('input').on('change',function(){
    var input=this;
    var reader = new FileReader();
    reader.onload = function(e) {
      var x=new Image()
      x.onload=function(){
        alert('width=' + x.width + ', height:' + x.height)
      }
      x.src= e.target.result;
    }

    reader.readAsDataURL(input.files[0]);
  }      
})