我正在创建一个允许上传和显示图像的应用程序。用户可以上传图像,然后所有图像都显示在一个页面上。最大的问题是所有图像都需要以所有者的名义显示。
我使用CollectionFS上传和存储文件,这是我的storeFile方法:
Template.queueControl.events({
'change .fileUploader': function (e) {
var files = e.target.files;
for (var i = 0, f; f = files[i]; i++) {
console.log(Meteor.user().username);
ImageFS.storeFile(f, {username: Meteor.user().username});
}
}
});
我以为我可以使用这样的查询来回调文件:
Template.studentModal.getImage = function(){
return ImageFS.find({username: Session.get("studentUsername")});
}
设置和获取用户名可以正常工作并且符合预期。它不会返回任何记录。
谢谢, 斯凯勒
答案 0 :(得分:3)
您应该转换"文件"到" FS.File"在调用" storeFile"之前。现在,您可以添加"所有者"等元数据。到图像。
这至少应该在Meteor 0.9中起作用:
Template.queueControl.events({
'change .fileUploader': function (e) {
var files = e.target.files;
for (var i = 0, f; f = files[i]; i++) {
var newFile = new FS.File(files[i]);
newFile.owner = Meteor.user().username;
Images.insert(newFile, function(err, fileObj) {});
}
}
});
答案 1 :(得分:0)
您应该存储userId并订阅发布所显示用户的发布,只需使用用户名。 我使用https://github.com/englue/meteor-publish-composite作为出版物合成。