簡體   English   中英

將捕獲的圖像插入數據庫問題(Cordova / SQlite / JavaScript)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM