将base64字符串存储到GridFS(mongoDB文件存储)

时间:2014-03-24 11:31:45

标签: javascript node.js mongodb base64 gridfs

我正在尝试将剪贴板中的图像粘贴到<img>标记中。此映像的源是Prnt Scrn命令,而不是文件。此剪贴板图像将采用base64格式。可以使用javascript将此base64字符串插入src标记的<img>属性(一旦按下ctrl-v)以用于显示目的。这可以通过使用此plugin来实现。

所以<img>标签会是这样的:

<img id="screen_image" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABVYAAAMACAI......(long string here)"

虽然,我可以将整个字符串保存到mongoDB集合中并将其检索回来显示该图像,但我的最终目标是将此图像保留到gridFS。如果我可以将base64解释为文件并将其保存到gridFS,是否有办法?

我希望我已经说清楚了。欢迎评论。

更新:我想维护一个公共集合来存储图像或任何文件(我已经使用gridFS来保存文件附件,所以我不想创建一个新的集合来存储剪贴板图像)。我也尝试使用window.atob()解码字符串,但后来我不知道如何将其保存到gridFS

1 个答案:

答案 0 :(得分:0)

我现在正在使用Mongo作为我的高级项目,之前我正在使用GridFS存储子项(客户端是一个本地非盈利的世界视觉)图片但最近我已经将它们存储在base64中的实际子文档中了。所有图像都在3mb左右,base64转换为大多数4-5mb。如果您可以将它们存储为base64,我认为它可以实现更简单的模式。

我知道你说你想使用GridFS,但如果你的文件超过16mb,我只会走那条路。对于我希望显而易见的原因,将它们存储为文档中的字符串要简单得多。