Javascript Cordova SQLite保存BLOB

Javascript Cordova SQLite保存BLOB,javascript,sqlite,cordova,blob,ionic,Javascript,Sqlite,Cordova,Blob,Ionic,我对Cordova SQLite插件有问题 如何将BLOB图像保存到SQLite 我在JS中有BLOB对象: Blob:{ size: 96874 type: "image/jpeg" __proto__: Blob length: 1} 我试图拯救它 INSERT INTO images (img) VALUES (?); 当我试图得到这个图像时: SELECT img FROM images 我得到这个字符串: img: "{"type":"image\/jpeg","size":96

我对Cordova SQLite插件有问题

如何将BLOB图像保存到SQLite

我在JS中有BLOB对象:

Blob:{
size: 96874
type: "image/jpeg"
__proto__: Blob
length: 1}
我试图拯救它

INSERT INTO images (img) VALUES (?);
当我试图得到这个图像时:

SELECT img FROM images
我得到这个字符串:

img: "{"type":"image\/jpeg","size":96874}"
如何将其再次转换为BLOB

我还尝试在base64中保存图像,但我无法将大图像保存到SQLite,因为base64字符串非常大。(它适用于小图像)


请帮助我,对不起我的英语。

您可以使用和函数在SQL和JavaScript之间的接口上将blob值作为十六进制字符串处理,这很好。

您的图像有多大?我已经建立了一个应用程序,将图像保存到应用程序数据库中,请参见此。我和一位顾客在一起。
您还可以在中找到该应用。

您无法将JavaScript Blob对象保存到SQLite插件。它不支持Blob格式。是的,我知道它有一个
BLOB
类型,但令人困惑的是,它不是同一件事

WebSQL/SQLite插件确实支持二进制字符串作为blob的替代。但是,您可能会遇到问题,因为在iOS和Android()上的实现中都存在许多bug

在PockDB中,我们解决了这些问题,因此附件API为您抽象了所有内容。遵循,它将为您转换blob并将它们存储在数据库中。要创建与SQLite插件对话的PockDB,您需要执行以下操作:

/* prefer websql, which will actually use the SQLite Plugin if available */
var db = new PouchDB('mydbname', {adapter: 'websql'});
if (!db.adapter) {
  /* fall back to IndexedDB for FirefoxOS, Windows Phone, etc. */
  db = new PouchDB('mydbname');
}

如果您想在blob和二进制字符串或各种其他格式之间进行转换,请查看。

我的建议是将图片存储为平面文件,当然要使用唯一的文件名,并将引用存储在sqlite数据库中。

您能解释一下吗?当我得到javascript BLOB对象时,我该怎么处理他?很抱歉提出了愚蠢的问题,但我对这个问题有点困惑。出于某种原因,WWAHost未能通过IndexedDB的检查:-/