我在尝试在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"
答案 0 :(得分:2)
我相信你的对象可能会发生一些事情,使它看起来与你上面列出的键/值对创建的对象文字不同。
我建议console.log
在对象通过JSON.stringify
后确认它,以确保它与您的意图一对一匹配。
IndexedDB使用HTML5 structured clone algorithm将对象复制到对象库中。根据{{3}},无法克隆错误和函数对象并抛出DATA_CLONE_ERR
,因此请将其作为可能的解释。
答案 1 :(得分:2)
另请注意,Chrome(至少通过版本23)尚不支持在IndexedDB中存储blob,并且如果您尝试直接存储它们,则会抛出您描述的错误。与此同时,您将不得不使用FileSystem API。
答案 2 :(得分:1)
这篇Mozilla黑客文章应该有所帮助 - http://hacks.mozilla.org/2012/02/storing-images-and-files-in-indexeddb/
答案 3 :(得分:0)