【问题标题】:Insert blob on WebSQL在 WebSQL 上插入 blob
【发布时间】:2015-01-03 07:09:35
【问题描述】:

我正在尝试将 blob 图像保存到在 Android 上运行的 Apache Cordova 应用程序上的 sqlite (Web SQL) 中。

我已经弄清楚如何创建 blob 并从本地文件中获取它。问题是在数据库上,不是保存 blob,而是保存一个字符串,其中指出 [Object 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 对象。但如前所述,当我执行 SELECT 时,结果返回 [Object Blob]

这就是我创建数据库的方式:

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

【问题讨论】:

    标签: android sqlite cordova web-sql


    【解决方案1】:

    WebSQL 不直接支持二进制数据。

    通常,二进制数据会被转换成某种文本格式,例如 Base64,并以文本形式存储在数据库中。

    或者,使用 blob literalshex() function 在 SQL 和 JavaScript 之间的接口处将 blob 值视为十六进制字符串。

    【讨论】:

      猜你喜欢
      • 2013-11-25
      • 1970-01-01
      • 2011-12-19
      • 2013-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多