【问题标题】:Adding extra fields when uploading image with CollectionFS使用 CollectionFS 上传图像时添加额外字段
【发布时间】:2015-04-04 12:25:50
【问题描述】:

我是 Meteor 编程的新手,我一整天都在尝试解决这个问题,但没有任何运气。 我正在使用 collectionFS 上传图像,我想给它我的 Meteor.userId();这样只有登录的用户才能看到自己的图像 我有以下代码:

'change .myFileInput': function(event, template) {
  FS.Utility.eachFile(event, function(file) {
    Imagess.insert(file, function (err, fileObj) {
      if (err){
         // handle error
      } else {
         // handle success depending what you need to do
        var currentUserId = Meteor.userId();
        var imagesURL = {
          "profile.image": "/cfs/files/images/" + fileObj._id
        };
        Meteor.users.update(currentUserId, {$set: imagesURL});
      }
    });
 });
},

我试过这样做,但它不起作用,它说访问被拒绝:

'change .myFileInput': function(event, template) {
  FS.Utility.eachFile(event, function(file) {
    Imagess.insert(file, function (err, fileObj) {
      if (err){
         // handle error
      } else {
         // handle success depending what you need to do
        var currentUserId = Meteor.userId();
        var imagesURL = {
          "profile.image": "/cfs/files/images/" + fileObj._id
        };
        createdBy: currentUserId,
        Meteor.users.update(currentUserId, {$set: imagesURL});
      }
    });
 });
},

知道如何完成这项工作吗?

非常感谢!

【问题讨论】:

    标签: node.js mongodb meteor


    【解决方案1】:

    例如,您应该在此处使用元数据。

    FS.Utility.eachFile(event, function(file) {
         file.metadata = {
                imageOwner:Meteor.userId();
          }
        Imagess.insert(file, function (err, fileObj) {
    

    看看这个小DEMO,这里是Source Code

    【讨论】:

    • 首先,感谢您的帮助。我添加了这一点,并尝试使用:images: function () { return Imagess.find({'metadata.createdBy':Meteor.userId()}); } 显示图像,但它不会返回任何内容,知道为什么吗?
    • 如果您在console 上运行查询,您会得到什么?和undefined?元数据真的存在吗?
    • 已经修好了,忘了加:var newFile = new FS.File(file);非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2015-06-02
    • 1970-01-01
    • 1970-01-01
    • 2015-08-26
    • 1970-01-01
    • 2011-12-01
    • 2015-05-17
    • 2020-05-17
    相关资源
    最近更新 更多