将图像文件存储在IndexedDB中

CLi*_*own 4 javascript html5 indexeddb

我在尝试在IndexedDB本地存储中存储和映像文件时遇到问题,我抓住文件对象并尝试将其推送到IndexedDB但它似乎抛出并出错:DOM异常:DATA_CLONE_ERR(25)

如何将文件对象(如下所示)转换为我可以存储在indexedDB中并在以后从indexedDB中检索的内容?

attribute: 32
contentType: "image/png"
displayName: "image1"
displayType: "PNG File"
fileType:    ".png"
name:        "image1.png"
path:        "C:\pictures\image1.png"
Run Code Online (Sandbox Code Playgroud)

小智 6

IndexedDB支持在Firefox和Chrome中存储blob.有可用的例子上存储图像索引资料.该代码适用于最新版本的Chrome和Firefox.希望能帮助到你.

  • 我更新了该示例以在Chrome中使用.它在写入数据库时​​将blob转换为base64字符串,并在从数据库读取时将其转换为ta blob.https://gist.github.com/tantaman/6921973 (2认同)

bul*_*ley 2

我相信您的对象可能发生了一些事情,使其看起来与您上面列出的键/值对创建的对象文字不同。我建议console.log在对象通过后对其进行 ging,JSON.stringify以确保它与您的意图一一匹配。

IndexedDB 使用 HTML5结构化克隆算法将对象复制到对象存储中。根据规范,Error 和 Function 对象不能被克隆并抛出 a DATA_CLONE_ERR,因此请将此作为可能的解释。