2015-01-03 2 views
1

Android에서 실행되는 Apache Cordova App의 sqlite (Web SQL)에 blob 이미지를 저장하려고합니다.Blob 이미지를 WebSQL에 삽입하십시오.

블롭을 만들고 로컬 파일에서 가져 오는 방법을 알아 냈습니다. 문제는 데이터베이스, 블롭을 저장되는 대신, [오브젝트의 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 직접 바이너리 데이터를 지원하지 않습니다 : 나는 결과를 반환 [객체의 Blob]

을 선택 할 때 같이이 내가 데이터베이스를 생성하는 방법이다, 앞서 언급.

일반적으로 이진 데이터는 Base64와 같은 텍스트 형식으로 변환되어 데이터베이스에 텍스트로 저장됩니다.

또는 blob literalshex() function을 사용하여 BLOB 값을 SQL과 JavaScript 간의 인터페이스에서 16 진수 문자열로 처리하십시오.

관련 문제