Javascript 如何获取图像宽度

Javascript 如何获取图像宽度,javascript,node.js,reactjs,meteor,Javascript,Node.js,Reactjs,Meteor,我使用“react dropzone”为用户提供一种上传图像的方式。当用户提交时,我将图像保存在AmazonS3云中。我需要测量图像宽度,但我已经尝试了imagemagick软件包和其他一些npm模块,我总是遇到一些问题,如“找不到模块“fs”或“找不到模块“../lib/detector”(…)”。有什么建议吗 S3.upload({ files:this.files, path:"tours/"+this.tourId

我使用“react dropzone”为用户提供一种上传图像的方式。当用户提交时,我将图像保存在AmazonS3云中。我需要测量图像宽度,但我已经尝试了imagemagick软件包和其他一些npm模块,我总是遇到一些问题,如“找不到模块“fs”或“找不到模块“../lib/detector”(…)”。有什么建议吗

    S3.upload({
            files:this.files,
            path:"tours/"+this.tourId
        },function(e,result){
         // Get Image width here
    });

fs模块仅在服务器上可用,imagemagick也是如此。因此,您需要将图像传递到meteor服务器才能使用它们

另外,AWS S3具有lambda函数(可以是javascript),并且可以在上载文件时触发,因此可以在那里进行检测。您可以将图像信息保存到AWS上的单独文本文件中,然后使用HTTP GET请求检索该文件。唯一的问题是lambda函数是异步执行的,因此在请求文件之前需要等待一段时间


AWS API网关允许您使用HTTP请求调用lambda函数,因此一旦文件上载完成,您的下一个操作将是对lambda函数执行HTTP GET。这将返回您需要的信息。

fs模块与imagemagick一样,仅在服务器上可用。因此,您需要将图像传递到meteor服务器才能使用它们

另外,AWS S3具有lambda函数(可以是javascript),并且可以在上载文件时触发,因此可以在那里进行检测。您可以将图像信息保存到AWS上的单独文本文件中,然后使用HTTP GET请求检索该文件。唯一的问题是lambda函数是异步执行的,因此在请求文件之前需要等待一段时间


AWS API网关允许您使用HTTP请求调用lambda函数,因此一旦文件上载完成,您的下一个操作将是对lambda函数执行HTTP GET。这将返回您需要的信息。

每个
文件
上都应该有一个
.preview
属性(除非您设置了
disablePreview
prop)。
file.preview
是一个blob URL,您可以将其加载到
Image()
中,以捕获其
onload
事件中的宽度和高度:

var image = new Image();
image.src = window.URL.createObjectURL(file.preview);
image.onload = function () {
  var width = image.width;
  var height = image.height;
  // TODO: Do something with the dimensions
};

每个
文件
上都应该有一个
.preview
属性(除非您设置了
disablePreview
prop)。
file.preview
是一个blob URL,您可以将其加载到
Image()
中,以捕获其
onload
事件中的宽度和高度:

var image = new Image();
image.src = window.URL.createObjectURL(file.preview);
image.onload = function () {
  var width = image.width;
  var height = image.height;
  // TODO: Do something with the dimensions
};