使用cfs Filesystem上传客户端文件

时间:2014-09-26 18:06:50

标签: file-upload meteor

我正在尝试按照Meteor CollectionFS说明进行简单的文件上传工作。我添加了以下内容:

在model.js

Images = new FS.Collection("images", {
  stores: [new FS.Store.FileSystem("images", {path: "~/uploads"})]
});

在Server.js中我发布了这个集合,在client.js中我正在订阅它。

在模板事件中,我获取文件并将其插入集合中,如下所示:

Images.insert(files[0], function (err, fileObj) {
  //Inserted new doc with ID fileObj._id, and kicked off the data upload using HTTP
  if(err) console.log(err);
});

但这会引发错误 - 500 Meteor.error,内部服务器错误。 有人知道为什么会这样吗?

1 个答案:

答案 0 :(得分:1)

搞定了:

需要添加返回true或false的Images.allow规则。

Images.allow({
  insert: function(userId, doc) {
    return (userId && doc.metadata.owner === userId);
  },
  update: function(userId, doc, fieldNames, modifier) {
    return (userId && doc.metadata.owner === userId);
  },
  remove: function(userId, doc) {
    return false;
  }
});