【发布时间】:2022-06-10 22:26:06
【问题描述】:
我正在开发一个 PWA 项目,我在其中创建了一个 IndexedDB 并将图像和视频存储在其中。在下一次重新加载页面时,如果 IndexedDB 中有图像/视频,它应该从那里加载它。
function fetchMedia(id) {
var transaction = db.transaction(["media"]);
var objectStore = transaction.objectStore("media");
var request = objectStore.get(id);
request.onerror = function(event) {
console.log("Unable to retrieve daa from database!");
return "";
};
request.onsuccess = function(event) {
var imgFile = request.result;
console.log(imgFile)
var imgURL = window.URL.createObjectURL(imgFile);
return imgURL;
};
}
它总是返回undefined。
当我对 imgFile 进行 console.log 时,它显示它在 IndexedDB 中:
IndexedDB 中的文件:
我也试过了,但还没有成功:
var imgURL = window.URL.createObjectURL(new Blob(imgFile, {'type': 'application/octet-stream'}));
从 IndexedDB 加载文件的正确方法是什么?
【问题讨论】:
标签: javascript progressive-web-apps indexeddb