我正在尝试按照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,内部服务器错误。 有人知道为什么会这样吗?
答案 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;
}
});