Meteor CollectionFS,每个商店的条件?

时间:2015-01-21 00:37:10

标签: meteor

是否可以为Meteor CollectionFS的每个FS.Store添加条件?

我希望在每个FS.Store之前做某种功能来检查,如果它失败了,就根本不上传。

例如,我尝试检查上传图片是否为特定尺寸。如果不是,我想停止继续上传该FS.Store。

1 个答案:

答案 0 :(得分:0)

CollectionFS用于提供从存储上的文件,网址,blob等上传的有效方式,如数据,GridFS,S3等....在将数据上传到Collection之前,应该先处理检查要发送到服务器的数据的过程。

因为CollectionFS支持多种数据,您可以(或不)在上传内容之前过滤内容。

  • 文件对象(仅限客户端)//是
  • Blob对象(仅限客户端)// YES
  • Uint8Array // YES
  • 数据URI字符串// YES
  • 以" http:"开头的完整网址或" https:" // NO,不适用
  • 本地文件路径(仅限服务器)// NO(仅限服务器)
  • ArrayBuffer Buffer(仅限服务器)// NO(仅限服务器)

原因很简单,您可以在您的模板中枚举您愿意上传的文件:

Template.myForm.events({
  'change .myFileInput': function(event, template) {
    FS.Utility.eachFile(event, function(file) {
      // Test here what you want to test on "file", return if the test failed
      Images.insert(file, function (err, fileObj) {
      });
    });
  }
});

如果您要从网址上传,则在下载内容之前显然无法检查内容....如果您要上传文件,blob,数据URL字符串,Uint8Array,数据仍然在客户端,那么您的工作就是分析它并授予或拒绝上传。