我正试图使用pouchdb将以base64格式编码的图像保存为文档的附件(内联),然后再次检索它。
然而,当我检索文档时,pouchdb似乎修改了base64图像数据,并在其上附加了"md5-"。正如我所期望的,附件对象中也没有"data"属性。相反,我找到了一个名为"摘要"的对象。这是什么?
我创建了一个示例:
var db = new PouchDB('example');
db.bulkDocs(
[
{
_id: '1',
name: 'example',
"_attachments": {
"avatar.jpg": {
"content_type": "image/jpg",
"data": [BASE65 DATA STRING]
}
}
],
function(err, response) {
if (!err) {
db.allDocs({ include_docs: true, attachments: true }, function(err, docs) {
var d = docs.rows[0].doc;
// d looks like this:
// {"name":"example","_attachments":{"avatar.jpg":{"content_type":"image/jpg","digest":"md5-57e396baedfe1a034590339082b9abce","stub":true}},"_id":"1","_rev":"1-ff23a959ae88b871b94374a784a07728"}
});
}
}
);
完整示例可在此处找到:http://jsfiddle.net/ntan0ycL/
如何从pouchdb文档中检索图像的base64表示?我不确定问题是在于我如何保存附件还是如何检索。
谢谢,
安德鲁。
看来我们犯了一个错误,allDocs()
API不支持attachments
选项。所以你得到的只是一个附件存根。
我已经提交了一个问题:https://github.com/pouchdb/pouchdb/issues/2771
同时,您可以使用普通的getAttachment()
或get()
API与{attachments: true}
一起单独获取附件。很抱歉。