【发布时间】:2014-02-17 06:05:45
【问题描述】:
我正在尝试确定在流星上存储在 GridFS 中的图像的宽度,以便我可以重新调整模态对话框的大小。
我有一个模板助手
Template.projectImageModalInner.image = function() {
var imageId = Session.get("selectedImageId");
//console.log("projectImageModalInner imageId: " +imageId);
var image = imageFS.findOne({_id: imageId});
url = image.fileHandler.default1.url;
console.log(url);
console.log(Imagemagick.identify(url));
return imageFS.findOne({_id: imageId});
}
它将正确的图像返回到对话框以显示,但我在获取大小时确实遇到了问题。对 Imagemagick.identify 的调用因错误提示“无法在未定义时调用方法识别”而爆炸,但上面的行打印了正确的 url。
图像 url 的控制台日志显示
/cfs/images/i5mSRED6mYgo2vK84_default1.jpg
这是模板中显示的图片的正确 URL。
我想最终设置一个带有图像宽度的会话变量,以便可以动态调整对话框的大小。
我已经尝试从 html 中(没有任何乐趣)和其他助手那里获得这个大小,但到目前为止没有任何效果。
谁能指出我在这里做错了什么,或者,建议另一种方法?
【问题讨论】:
-
这似乎不是核心流星,除非我遗漏了什么。也许提供有关您的
imageFS定义的更多信息。无论如何,解决方案将是做这个服务器端,而不是任何客户端代码。 -
我首先猜测 imagemagick 仅在服务器上可用?无论如何,我建议的解决方案是,在 JS 中将图像加载到背景中,然后获取其尺寸,然后创建模态。
-
Neil:这里使用的包是meteorite的meteor-imagemagick和gridfs。 D 先生,您将如何在后台执行此操作?我不知道从哪里开始。
标签: javascript node.js mongodb meteor gridfs