Pouchdb не удается получить вложение с локального компьютера

#javascript #angularjs #pouchdb

#javascript #angularjs #pouchdb

Вопрос:

Я использую приведенный ниже код для сохранения изображения в pouchdb, результат.base_64 содержит большой двоичный объект. Когда я проверяю с помощью PouchDB Inspector, размер базы данных отображается как нулевой, а при нажатии на вложение отображается файл, который не найден

  var db = new PouchDB('xyz');
 db.putAttachment('skul', 'skul', result.base_64, 'image/jpg').then(function() {
                        return db.get('skul', {
                            attachments: true
                        });
                    }).then(function(doc) {
                        console.log(doc);
                    });
  

попробовал это для получения вложения

 db.getAttachment('skul', 'skul' function(err, blob_buffer) {
                            if (err) {
                                return console.log(err);
                            } else {
                                //  console.log(blob_buffer);
                                var url = URL.createObjectURL(blob_buffer);
                                var img = document.createElement('img');
                                img.src = url;
                                document.body.appendChild(img);
                            }
                        })
  

при этом изображение отображается в браузере, но URL-адрес изображения

 src="blob:http://localhost:8000/d1388aaa-f2c8-45ae-af39-e2b384e25c7c"
  

которое ссылается на сервер, а не на локальный компьютер

Ответ №1:

Вы убедились, что result.base_64 это не пустая строка или что она действительна в base64?

В документах есть живые рабочие примеры, показывающие, как вставлять данные base64. Вы можете запустить эти примеры в своем браузере и убедиться, что они работают. 🙂 https://pouchdb.com/guides/attachments.html

Комментарии:

1. оно не пустое, я сделал это getAttachment с идентификатором и именем, я получил изображение, выполнив document.body . Но URL-адрес изображения ссылается на удаленный сервер, а не на локальный компьютер