Cordova SQLite save BLOB

Tengo un problema con el complemento SQLite de Cordova.

¿Cómo puedo save la image BLOB en SQLite?

Tengo un object BLOB en JS:

Blob:{ size: 96874 type: "image/jpeg" __proto__: Blob length: 1} 

E bash salvarlo

 INSERT INTO images (img) VALUES (?); 

Y cuando trato de get esta image:

 SELECT img FROM images 

Me sale esta cadena:

 img: "{"type":"image\/jpeg","size":96874}" 

¿Cómo puedo convertirlo a BLOB nuevamente?

También bash save imágenes en base64, pero no puedo save imágenes grandes en SQLite, porque la cadena base64 es muy grande. (Es trabajos con imágenes pequeñas)

Por favor, ayúdame y perdón por mi inglés.

No puede save objects Blob de JavaScript en el complemento SQLite. No es compatible con el formatting Blob. Sí, sé que tiene un tipo BLOB , pero confusamente no es lo mismo. 🙂

WebSQL / SQLite Plugin no admite cadenas binarias como una alternativa a Blobs. Sin embargo, puede tener problemas porque existen numerosos errores en la implementación tanto en iOS como en Android ( algunos detalles están aquí ).

En PouchDB hemos solucionado estos problemas, por lo que la API de files adjuntos lo resuelve todo por usted. Siga la guía de files adjuntos PouchDB y convertirá Blobs para usted y los almacenará en la database. Para crear un PouchDB que se comunica con el complemento SQLite, deberá hacer lo siguiente:

 /* 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'); } 

Si desea convertir entre Blobs y cadenas binarias o una variedad de otros formattings, consulte blob-util .

Podría usar literales blob y la function hexadecimal para tratar valores de blob como cadenas hexagonales en la interfaz entre SQL y JavaScript, que funciona bien.

¿Qué tan grandes son tus imágenes? Construí una aplicación que guardaba imágenes en la database de la aplicación, mira este service de deviseio . He usado PouchDB y un cliente base64-service . También puede encontrar la aplicación en las tiendas oficiales .

Mi recomendación es simplemente almacenar sus imágenes como files planos, con nombres de files únicos, por supuesto, y almacenar las references en su database sqlite.