我在IndexedDB中保存blob时遇到了麻烦,只有在使用blob时才会出现此问题。
如果我保存其他东西(如base64图像),一切都正常。
但是使用blob时,只会保存一个空对象属性。
我还尝试过只保存blob(而非作为obj属性包装),但结果相同。
我可以将blob保存到HDD中,如果我在控制台上记录我的obj,我会得到:![enter image description here](https://istack.dev59.com/CLyQT.webp)
因此,我猜测blob是有效的,问题在于将其添加到indexedDB中。我对blob/indexedDB很陌生,可能犯了一些新手错误。请问有人能提供建议,我错在哪里了吗?
PS:没有任何错误消息
如果我保存其他东西(如base64图像),一切都正常。
但是使用blob时,只会保存一个空对象属性。
控制台截图:
代码:
//prepared blob...
var openRequest = indexedDB.open("testDB",1);
openRequest.onupgradeneeded = function(e) {
var thisDB = e.target.result;
if(!thisDB.objectStoreNames.contains("stash")) {
thisDB.createObjectStore("stash");
}
}
openRequest.onsuccess = function(e) {
db = e.target.result;
var transaction = db.transaction(["stash"],"readwrite");
var store = transaction.objectStore("stash");
var tID = Date.now();
var obj = {
bl:blob,
created:tID
}
console.log(obj);
//add it
var request = store.add(obj, tID);
request.onerror = function(e) {
console.log("Error",e.target.error.name);
}
request.onsuccess = function(e) {
console.log("success");
}
}
openRequest.onerror = function(e) {
//....
}
我还尝试过只保存blob(而非作为obj属性包装),但结果相同。
我可以将blob保存到HDD中,如果我在控制台上记录我的obj,我会得到:
![enter image description here](https://istack.dev59.com/CLyQT.webp)
因此,我猜测blob是有效的,问题在于将其添加到indexedDB中。我对blob/indexedDB很陌生,可能犯了一些新手错误。请问有人能提供建议,我错在哪里了吗?
PS:没有任何错误消息