Вопрос по html5, indexeddb, javascript – Сохраните файл изображения в IndexedDB

4

У меня возникают проблемы при попытке сохранить файл и изображение в локальном хранилище IndexedDB, я беру объект файла и пытаюсь вставить его в IndexedDB, но, похоже, выдает ошибку: DOM Exception: 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"
Можете ли вы взглянуть на эту прекрасную статью:hacks.mozilla.org/2012/02/storing-images-and-files-in-indexeddb и посмотрите, есть ли сходство с тем, чего вы пытаетесь достичь. Vincent Briglia
Это отличная статья, но изображение хранится локально, а не удаленно - поэтому я не получаю от пользователя блоб. Или я получаю большой двоичный объект, но он находится внутри объекта файла - нужно извлечь его оттуда, чтобы использовать позже. CLiown

Ваш Ответ

5   ответов
2

что Chrome (по крайней мере до версии 23) пока не поддерживает хранение больших двоичных объектов в IndexedDB и выдаст описанную ошибку, если вы пытаетесь сохранить их напрямую. Тем временем вам придется использовать API-интерфейс FileSystem.

Просто хотел указать наticket смотрите такжеthis
2

что с вашим объектом может происходить что-то, что отличает его от литерала объекта, который будет создан парой ключ / значение, которую вы перечислили выше. Я предлагаюconsole.logпосле того, как объект прошелJSON.stringify чтобы убедиться, что это соответствует один к одному с вашими намерениями.

IndexedDB копирует объекты в хранилище объектов, используя HTML5алгоритм структурированного клона, В соответствии сспецификация, Объекты Error и Function не могут быть клонированы иDATA_CLONE_ERRтак что посмотрите на это как на возможное объяснение.

я разместил подобный вопрос с кодом здесьlink Пожалуйста, помогите здесь
0

ydn-db API.

Смотрите раздел & quot; Хранение данных файлов и блобов & quot; по ссылке ниже.

http://dev.yathit.com/ydn-db/transaction.html

Приветствия.

Мертвая ссылка, больше не действительна
6

Chrome. Есть в наличиипример на хранение изображений в IndexedDB. Код прекрасно работает с новейшими версиями Chrome и Firefox. Надеюсь, поможет.

Я обновил этот пример для работы в Chrome. Он преобразует BLOB-объект в строку base64 при записи в базу данных и возвращает BLOB-объект при чтении из базы данных.gist.github.com/tantaman/6921973
ты уверен в этом? По состоянию на 10 октября 2013 года Chrome по-прежнему не поддерживает хранение больших двоичных объектов в IndexedDB, если я что-то упустилcode.google.com/p/chromium/issues/detail?id=108012 , Пример, который вы опубликовали, также не работает в Chrome по нескольким причинам, только 1 является проблемой с BLOB-объектами.

Похожие вопросы