我试图通过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;
}
});
答案 0 :(得分:1)
你应该:
'change .upload':
代替'click .upload':
。Images
代替var Images
,因此您可以在其他文件中使用该变量。