CollectionFS Meteor,WYSIWYG,Summernote,Image Upload

时间:2014-12-07 17:52:39

标签: javascript collections meteor wysiwyg summernote

大家晚安。

我一直在努力使用WYSIWYG编辑器和collectionFS将文件上传工作在Meteor中。我一直在尝试使用Summernote,但我不介意使用Redactor或Froala。

我显然不熟练将WYSIWYG编辑器与CollectionFS连接以将文件上传到本地路径。

这是我的代码。

Template.postSubmit.rendered = function(){
    $('#edit').summernote();

};


Template.postSubmit.events({
  'submit #postSubmit':function(event, template) {
    FS.Utility.eachFile(event, function(file) {
      Images.insert(file, function (err, fileObj) {
        //Inserted new doc with ID fileObj._id, and kicked off the data upload using HTTP
      });
    });
  }
});

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

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

根据我的简短知识,我必须添加

onImageUpload: function(files, editor, welEditable) {
                        sendFile(files[0],editor,welEditable);
                       }
在summernote脚本中(是吗?)。

我似乎无法完成这项工作!我们将非常感谢指针,指南和帮助...

EDIT1:

Template.postSubmit.rendered = function(){
    $('#edit').summernote({
        onImageUpload: function(file) {
    FS.Utility.eachFile(event, function(file) {
      Images.insert(file, function (err, fileObj) {
        //Inserted new doc with ID fileObj._id, and kicked off the data upload using HTTP
      });
    });
  } 
    });
};

所以我已经编辑了我的代码,现在它正在运行!它将文件上载到指定的路径。现在的问题是, 1.它会立即上传图像(一旦我点击添加图像而不是我提交表格时)。 2.上传的图片不会显示在编辑器中。

1 个答案:

答案 0 :(得分:0)

这对我有用:

Template.blogList.rendered = function() {
    var template = this;
    $('#summernote').summernote({
        height: 400,
        maxHeight:800,
        minHeight:250,
        onImageUpload: function(files, editor, $editable) {

            Images.insert(files[0], function (err, fileObj) {
                console.log("after insert:", fileObj._id);
                template.autorun(function (c) {
                  fileObj = Images.findOne(fileObj._id);
                  var url = fileObj.url();
                  if (url) {
                    $("#summernote").summernote("insertImage", fileObj.url(), "Image Title"); 
                    c.stop();
                  }
                });
            });

        }   
    });
}