[英]Inserting captured image into database issue (Cordova/SQlite/JavaScript)
我試圖將捕獲的圖像存儲到數據庫中,但是似乎無法獲取圖像的實際數據。
相機拍攝完照片后,應將其自動存儲,但是我有查詢警報,它顯示為圖像未定義。
我敢肯定我的編碼有一些問題,因為我的編碼不是最好的。
警報(_Query3); 給我以下內容:
INSERT INTO Gallery(myImage) values ('undefined')
JavaScript:
document.addEventListener("deviceready", onDeviceReady, false);
var db;
function onDeviceReady() {
db = window.openDatabase("SoccerEarth", "2.0", "SoccerEarthDB", 2 * 1024 * 1024);
db.transaction(function(tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS Gallery (id INTEGER PRIMARY KEY, myImage BLOB)');
}, errorE, successS);
}
function successS() {
alert("Camera database ready!");
document.getElementById("btnCamera").onclick = function() {
navigator.camera.getPicture(onSuccess, onFail, {
quality: 50,
destinationType: Camera.DestinationType.DATA_URL
});
};
}
function onSuccess(tx, imageData) {
alert("Camera test 1");
var image = document.getElementById("lastPhoto");
image.src = "data:image/jpeg;base64," + imageData;
base64imageData = imageData;
var _Query3 = ("INSERT INTO Gallery(myImage) values ('"+ base64imageData +"')");
alert(_Query3);
tx.executeSql(_Query3);
}
/* function successCamera() {
navigator.notification.alert("Image has been stored", null, "Information", "ok");
$( ":mobile-pagecontainer" ).pagecontainer( "change", "#page4" );
} */
function onFail(message) {
alert('Failed because: ' + message);
}
function errorE(err) {
alert("Error processing SQL: " + err.code);
}
我可能已經找到解決您問題的方法。 您的onSuccess回調似乎語法錯誤。 我不了解如何將“ tx”變量與imageData變量一起使用,因為據我所知,只能將一個參數用於onSuccess。 如果我的假設是正確的,那么圖像數據的Base64編碼必須存儲在tx參數中。
讓我知道這是否能夠解決您的問題。
您可以參考camera.onSuccess以獲得正確的聲明。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.