1

我正在使用带有 meteorjs 的 redactor 插件来格式化文本并添加图像、视频和链接。Redactor 支持将图像作为 Web 链接上传,但在这里我想添加一个按钮来从本地机器上传图像。为此,我已将按钮添加到编辑器。它正在显示浏览图像选择并且正在工作。

   $('.editor').redactor({
    imageUpload:"/upload",

    imageUploadCallback: function(image, json)
    {
        console.log(image);
        console.log(json);

    },
    imageUploadErrorCallback: function(json)
    {
        console.log(json.error);
    }
    });

当我打印console.log("#redactor_file").val());时,它会给出文件的名称。但是,当我这样做console.log(console.log(html);)的时候<p><img src="undefined"></p>。我可以在这里获取图片的链接或网址吗?如果是,那怎么办?

HTTP.methods({
'upload': function(data) {
    console.log(data)
    return JSON.stringify( {'data':"data"})
}
});

当我console.log(data)使用上面的代码时,它会显示字符串格式的图像。现在我想使用 GridFS 存储图像。或者有没有更好的方法将图像存储在 MongoDB 中。如果是,那么告诉我或指导我使用 GridFS 存储图像?

4

1 回答 1

1

虽然 Redactor 提供了上传文件的客户端方法,但它不提供接收上传文件的服务器端方法。此外,股票 Meteor 也不提供这种方法。

所以你有几个选择。首先是通过使用诸如Iron Router之类的路由器,您可以创建一个服务器端 /uploads 路由,Iron Router 让您可以访问请求、响应对象。这可能有效,但因为这不再通过 DDP,所以您无权访问 Meteor.userId 等。请参阅如何使用 Meteor 和 Iron-Router 响应服务器端路由?

一种更类似于 Meteor 的文件上传方式是Meteor FileCollectionFS,尽管我不确定它们与 Redactor 集成的简单程度。你绝对可以让他们一起工作,就在我的脑海里,我不知道这有多容易。

于 2013-12-22T22:47:27.567 回答