0
キャプチャした画像をデータベースに保存しようとしていますが、画像の実際のデータを取得できないようです。キャプチャした画像をデータベースに挿入する問題(Cordova/SQlite/JavaScript)
カメラが写真を撮ると自動的に保存されますが、クエリアラートが表示され、画像が未定義であることが示されます。
私のコーディングにはいくつかの問題があると確信しています。私のコーディングは最良ではないからです。
alert(_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);
}
ここで、base64imageDataの宣言はどこですか?またはクエリーでimageDataを渡して、どのアラートが表示されているかを確認してください。 – IamKarim1992
私はちょうどいくつかを試した、imageDataは定義されていないので、私はそこにデータがないと仮定?私はさらに結果を見るためにimage.srcを入れました。そしてそれは 'data:image/jpeg; base64、undefined'を思いついたので、明らかにimageDataはデータを取得していません。 – Mahdi
@Mahdi:CordovaベースのアプリケーションでSQLiteにイメージバイナリデータを格納するソリューションを見つけましたか? – Mrunal