将捕获的图像插入数据库问题(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.onSccess获取正确的声明。
相关文章:
- 如何用javascript,phonegap(cordova)将json对象插入sqlite表中
- Cordova SQLite插件仅在第一次调用时有效
- 我想在混合移动应用程序中使用Sqlite插件(Cordova)创建一个示例项目
- 在普通桌面浏览器中测试时,如何将sqlite与cordova一起使用
- 将捕获的图像插入数据库问题(Cordova/SQlite/JavaScript)
- 使用sqlite使用jQuery和Cordova自动完成
- Cordova SQLite插件承诺javascript链
- 用于Cordova应用程序的Javascript SQLite-使用参数搜索,其中字符串包含子字符串大小写insenst
- 如何在cordova中传递sqlite事务中的参数
- SQLite:从Phonegap/Cordova中的(文本)日期字段中选择日期和时间
- ng-cordova sqlite 插件:类型错误:无法读取 null 的属性“事务”
- cordova-sqlite-porter importSqlToDb sql injection
- SQLite插件Cordova基本代码
- 在英特尔 XDK 中使用 Cordova SQLite 获取数据没有任何内容
- Apache Cordova,SQLite,从[表]中删除id=?不会返回
- 用cordova在sqlite中创建数据库
- 为什么我不能使用cordova sqlite存储
- angular 1中带有ionic native的Cordova SQLite
- Cordova: Sqlite没有存储我的数据
- 更改Cordova中的加载顺序(Cordova SQLite插件)