【发布时间】:2015-12-14 18:45:00
【问题描述】:
我正在使用 cordova 开发一个跨平台应用程序。
我需要在 sqlite 中插入图像。我得到了很多用于 android 的代码,但我发现用 javascript 做起来很困难。当我在 iPhone 中运行以下代码时,我收到了 err.code:5。
document.addEventListener("deviceready", onDeviceReady, false);
var img;
var currentRow;
var b = new Blob();
function previewFile() {
// var preview = document.querySelector('img');
var file = document.querySelector('input[type=file]').files[0];
var reader = new FileReader();
// var package_name = document.getElementById("pr").value;
reader.onloadend = function () {
// img = reader.result;
if(file.type.match('image.*'))
{
img = reader.result;
// ref.push({"image":image,"service":arr,"package_name":package_name});
}
else
{
alert("select an image file");
}
}
if (file) {
reader.readAsDataURL(file);
} else {
preview.src = "";
}
var image1 = encodeURI(img);
// var b = new Blob();
b = image1;
console.log(b);
console.log(image1);
//document.write('<img src="'+image+'"/>');
}
function onDeviceReady() {
var db = window.sqlitePlugin.openDatabase({name:"sqlite"});
db.transaction(populateDB, errorCB, successCB);
}
function populateDB(tx) {
tx.executeSql('CREATE TABLE IF NOT EXISTS DEMO (id INTEGER PRIMARY KEY AUTOINCREMENT, name,number,image BLOB)');
}
function insertDB(tx) {
tx.executeSql('INSERT INTO DEMO (name,number,image) VALUES ("' +document.getElementById("txtName").value
+'","'+document.getElementById("txtNumber").value+'","' +b+ '")');
}
function goInsert() {
var db = window.sqlitePlugin.openDatabase({name:"sqlite"});
db.transaction(insertDB, errorCB, successCB);
}
我的html代码:
<input type="file" onchange="previewFile()">
<button onclick="goInsert()">Insert</button>
如何做到这一点。有人能帮我吗?提前谢谢...
【问题讨论】:
-
上传到服务器并只保存路径
-
谢谢@Methew 但我需要将图像存储在 sqlite 文件中。
-
谢谢@Brad L。我提到了这些线程并发现它很有用。但我在将图像读取为位图时遇到问题。你能帮帮我吗?
标签: javascript sqlite cordova