2016-04-07 18 views
0

Yakalanan görüntüleri veritabanıma kaydetmeye çalışıyorum ancak görüntünün gerçek verilerini elde edemiyorum.Yakalanan görüntünün veritabanı sorununa eklenmesi (Cordova/SQlite/JavaScript)

Fotoğraf makinesi bir fotoğraf çektiğinde, otomatik olarak kaydedilmelidir, ancak sorgu uyarısı aldım ve görüntü tanımsız olarak gösterilir.

Kodumda en iyisi olmadığı için kodlamada birkaç sorun olduğundan eminim.

alert (_Query3);

INSERT INTO Gallery(myImage) values ('undefined') 

JavaScript: Aşağıdaki verir bana

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); 
} 
+0

base64imageData için bildirim nerede? veya sorgudaki imageData 'yı geçirin ve hangi uyarıların gösterildiğini kontrol edin. – IamKarim1992

+0

Sadece birkaç şey denedim, imageData undefined yani orada hiç veri yok mu? Ben sadece sonucu görmek için image.src koydu ve 'data: image/jpeg; base64, undefined' ile ortaya çıktı ki bu yüzden imageData herhangi bir veri çekmiyor. – Mahdi

+0

@Mahdi: Cordova tabanlı uygulamada görüntü ikili verilerini SQLite'ye depolamak için çözüm buldunuz mu? – Mrunal

cevap

0

Senin soruna bir çözüm bulmuş olabilir. OnSuccess Geri Çağrınız yanlış sözdiziminde görünüyor. "Tx" değişkeninin imageData değişkeniyle nasıl kullanılabileceğini anlamıyorum çünkü bildiğim kadarıyla onSuccess için sadece tek bir parametre kullanılabilir. Varsayımlarım doğruysa, görüntü verilerinin Base64 kodlaması tx parametresinde saklanmalıdır. Bu sorununuzu çözmeyi başarabilirse bana bildirin.

Uygun bildirim için camera.onSuccess'a bakın.