2015-01-03 61 views
1

我試圖在Android上運行的Apache Cordova應用程序中將blob圖像保存到sqlite(Web SQL)中。在WebSQL上插入blob

我已經想出瞭如何創建blob並從本地文件中獲取它。的問題是,在數據庫上,而不是被保存團塊,節省其中規定[對象斑點]

var xmlhttp = new XMLHttpRequest(); 
xmlhttp.open("GET","http://localhost/image.jpg",true); 
xmlhttp.responseType = 'blob'; 
xmlhttp.onreadystatechange = function(){ 
    if(xmlhttp.readyState==4){ 
    var product_image = xmlhttp.response; 
    db.transaction(tx.executeSql("INSERT INTO scans(product_image) VALUES (?)",[product_image]), errorCB); 
    } 
} 
xmlhttp.send(); 

事實上,product_image返回一個JPEG blob對象的字符串。但正如前面所說的,當我做選擇的結果返回[對象斑點]

這是我如何創建數據庫:

CREATE TABLE IF NOT EXISTS scans(id INTEGER PRIMARY KEY, product_image BLOB) 

回答

1

的WebSQL不直接支持二進制數據。

通常情況下,二進制數據被轉換成一些文本格式,如Base64,並作爲文本存儲在數據庫中。

或者,使用blob literalshex() function將blob值視爲SQL和JavaScript之間接口處的十六進制字符串。