Meteor文件上传无法正常工作

时间:2015-06-27 16:25:31

标签: javascript meteor collectionfs

我试图通过Meteors CollectionFS上传图片,但我没有在客户端代码中收到任何错误,所以我不确定是什么打破了。我看到console.log消息"内部上传"但我没有看到Images.insert回调中的任何成功或失败消息。帮助

myproject/client/upload.html

<template name="upload">
  <form>
  <input class="upload" type="file" id="upload" name=".../">
  </form>
</template>

myproject/client/upload.js

Template.providerblock.events({
  'click .upload': function(event, template) {
    event.preventDefault();
    var photo =  $('#upload')[0];
    var file = photo.files[0];
    console.log("inside upload");
    Images.insert(file, function (err, fileObj) {
      if(err) {
        console.log("unable to upload file");
      } else {
        console.log("file upload success");
      }
    });
  },
});

myproject/lib/images.js

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

Images.allow({
  insert: function() {
    return true;
  },
  update: function() {
    return true;
  },
  remove: function() {
    return true;
  },
  download: function() {
    return true;
  }
});

1 个答案:

答案 0 :(得分:1)

你应该:

  1. 使用'change .upload':代替'click .upload':
  2. Images代替var Images,因此您可以在其他文件中使用该变量。