Отображение файла изображения, хранящегося на mongodb - PullRequest
0 голосов
/ 08 мая 2018

Я нашел удобный способ в своем приложении сохранять небольшие загруженные файлы изображений (png или jpeg) на mongodb без сторонних ресурсов. Полученные документы выглядят так:

{ 
"_id" : "QuX8YaKmWfmBcEv", "type" : "image/png", 
"creator" : "83BEoeKvtYLTcKQtc", 
"data" : BinData(0,"iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAsSURBVHjaYvz//z8DKYCJgUTAAqE+RjESVMq/7D85NoxqGCkaGGmeWgECDAAufgkbzM8Q4AAAAABJRU5ErkAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAsSURBVHjaYvz//z8DKYCJgUTAAqE+RjESVMq/7D85NoxqGCkaGGmeWgE.... and so on ....") 
}

Теперь я пытаюсь отобразить эти изображения через JavaScript, но ничего, что я делаю, кажется, не отображает изображение. Вот пример кода, который я пробовал:

var imageFile = Images.findOne({_id: imageId})
var imageBlob = new Blob([imageFile.file], {
                type: imageFile.type
            });
var img = new Image();
img.src = URL.createObjectURL(imageBlob);
$("#contents").html('<img src="'+img.src+'">)

Результатом является стандартное изображение «отсутствует изображение».

Странная вещь: я храню / извлекаю / воспроизводю аудиофайлы в том же приложении, но не могу заставить эти изображения работать.

1 Ответ

0 голосов
/ 08 мая 2018

Итак, решение оказалось простым:

var imageFile = Images.findOne({_id: imageId})
var imageBlob = new Blob([new Uint8Array(imageFile.data)]);
var img = new Image();
img.src = URL.createObjectURL(imageBlob);
$("#contents").html('<img src="'+img.src+'">)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...