Javascript 将图像保存到数据库中

Javascript 将图像保存到数据库中,javascript,image,sqlite,cordova,Javascript,Image,Sqlite,Cordova,我正在尝试设置数据库来存储用户图像和名称。我已经把代码放到了JSFIDLE上。当我在我的设备上运行代码时,我会遇到一些错误。这里也有代码: HTML 输入名称和图片 拍摄照片 JS 函数init(){ 文件。添加的监听器(“deviceready”,OnDeviceraddy,false); } var pictureSource;//图像源 变量destinationType; 函数ondevicerady(){ var db=window.openDatabase(“数据库”、“1

我正在尝试设置数据库来存储用户图像和名称。我已经把代码放到了JSFIDLE上。当我在我的设备上运行代码时,我会遇到一些错误。这里也有代码:

HTML


输入名称和图片
拍摄照片



JS

函数init(){
文件。添加的监听器(“deviceready”,OnDeviceraddy,false);
}
var pictureSource;//图像源
变量destinationType;
函数ondevicerady(){
var db=window.openDatabase(“数据库”、“1.0”、“概要文件”,5000);
中频(db){
log('数据库正在工作');
警报(“数据库正在工作”);
事务(createTable、insertEntry、errorCB、successCB);//仅在数据库存在时执行操作
pictureSource=navigator.camera.PictureSourceType;
destinationType=navigator.camera.destinationType;
}
否则{
log(“有问题”);
}
}
函数takePhoto(){
//使用设备摄像头拍照,并将图像作为base64编码字符串检索
navigator.camera.getPicture(onPhotoDataSuccess,onFail,{quality:50});
} 
函数onPhotoDataSuccess(imageData){
控制台日志(imageData);
//获取图像句柄
var smallImage=document.getElementById('smallImage');
//取消隐藏图像元素
smallImage.style.display='block';
//显示捕获的照片
//内联CSS规则用于调整图像大小
smallImage.src=“数据:图像/jpeg;base64,”+imageData;
}
函数onFail(消息){
警报('失败原因:'+消息);
}
函数createTable(tx){
var sqlStr=('CREATE TABLE IF NONE EXISTS USERS(id INTEGER NOT NULL主键自动递增,name TEXT NOT NULL,image BLOB');
tx.executeSql(sqlStr,[],successCB,errorCB);
log(“创建的用户表”);
}
功能插入(tx){
var tmpName=document.getElementById(“用户名”).value;
var tmpImage=document.getElementById(“smallImage”).src;
var sqlStr=(“插入用户(名称、图像)值(?,)”);
tx.executeSql=(sqlStr[tmpName,tmpImage],onSqlSuccess,errorCB);
警报(“输入记录”);
}
//查询成功回调
函数onSqlSuccess(发送、恢复){
var len=results.rows.length;
log(“用户表:“+len+”找到行”);

对于(var i=0;i)您遇到了什么错误?对不起,我应该说。数据库正在打开,表也在打开,console.log(imageData)正在记录图像。但是,我在PictureSourceType上遇到了一个错误。01-07 17:50:28.187:E/Web控制台(30390):未捕获类型错误:无法读取位于的未定义的属性“PictureSourceType”file:///android_asset/www/myjavascript.js:15 然后我也会记录错误消息,因此不确定是否还有其他错误,或者第一个错误是否只是破坏了代码的其余部分。另一个错误示例01-07 17:50:28.207:I/Web控制台(30390):处理SQL时出错:在处未定义file:///android_asset/www/myjavascript.js:79 (79是错误日志)