2016-12-05 115 views
0

我使用的是“反应 - 悬浮窗”,以向用户提供一种方式来上传自己的图片。当用户提交时,我将这些图像保存在亚马逊S3云中。我需要测量图像的宽度,但我已经尝试过ImageMagick软件包和其他一些NPM模块,我总是有一些问题,如“找不到模块‘FS’,”或“无法找到模块” ../lib/detector'(...) ”。有什么建议么?MeteorJS获取图像宽度

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

回答

1

每个file应该有一个.preview属性(除非你设置disablePreview道具)。 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 
}; 
1

fs模块只能在服务器上使用,与imagemagick一样。所以你需要将图像传递给流星服务器以使用它们。

或者AWS S3具有lambda函数(可在JavaScript),当你上传一个文件,所以你可以做的检测有可能被触发。您可以将图像信息保存到AWS上的单独文本文件,然后使用HTTP GET请求检索该文件。唯一的问题是,lambda函数是异步执行的,所以在请求文件之前您需要等待一段时间。

的AWS API网关,您可以使用一个HTTP请求,以便尽快将文件上传完成调用lambda函数,你的下一个动作是做lambda函数的HTTP GET。这将返回您需要的信息。