В indexedDB можно хранить большие двоичные объекты и буферы массивов (как вы можете увидеть здесь). Моя проблема в том, что я храню PDF-файлы в хранилище и хочу «загружать» их, когда пользователь нажимает на определенную ссылку. Можно ли «скачивать» файлы из локальной базы indexDB?
3 ответа
Это невозможно с использованием встроенного JavaScript или IndexedDB API, но ознакомьтесь с частями FileWriter и BlobBuilder в предстоящем API файловой системы.
Эти вопросы на самом деле не связаны с IndexedDB, а скорее просто «Как заставить пользователя сохранить объект Blob». Blob работает одинаково, независимо от того, загрузили ли вы его из IndexedDB или получили его откуда-то еще.
Использование FileSaver было бы лучшим решением, если бы оно было реализовано последовательно, но это не так.
Что должно работать, так это сделать что-то вроде этого:
var iframe = document.createElement("iframe");
document.body.appendChild(iframe);
var url = URL.createObjectURL(blob); // This is the magic!
iframe.src = url;
Теперь можно сохранять большие двоичные объекты в indexedDb.
objectStore.put({ id: idValue, blobdata: data })
Похожие вопросы
Связанные вопросы
Новые вопросы
html
HTML (язык разметки гипертекста) - это язык разметки для создания веб-страниц и другой информации, отображаемой в веб-браузере. Вопросы, касающиеся HTML, должны включать минимальный воспроизводимый пример и некоторое представление о том, чего вы пытаетесь достичь. Этот тег редко используется отдельно и часто используется вместе с [CSS] и [javascript].