В indexedDB можно хранить большие двоичные объекты и буферы массивов (как вы можете увидеть здесь). Моя проблема в том, что я храню PDF-файлы в хранилище и хочу «загружать» их, когда пользователь нажимает на определенную ссылку. Можно ли «скачивать» файлы из локальной базы indexDB?

0
Franziskus Karsunke 6 Мар 2012 в 00:21

3 ответа

Лучший ответ

Это невозможно с использованием встроенного JavaScript или IndexedDB API, но ознакомьтесь с частями FileWriter и BlobBuilder в предстоящем API файловой системы.

1
buley 20 Мар 2012 в 22:35

Эти вопросы на самом деле не связаны с 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;
0
Jonas Sicking 15 Июн 2012 в 23:07

Теперь можно сохранять большие двоичные объекты в indexedDb.

objectStore.put({ id: idValue, blobdata: data })
0
coder 21 Май 2018 в 03:18