Phonegap数据库问题 - 将图像存储在数据库中

时间:2010-08-17 02:07:55

标签: iphone sqlite mobile-safari cordova

我正在尝试使用该选项创建一个非常基本的库存应用程序 包括库存中的项目照片。我拥有了一切 除了照片部分以外的工作......

我看过这个

http://phonegap.pbworks.com/iPhone%3A-Camera-API

我可以让相机工作,但似乎无法添加 图像到数据库 -

这是一些代码

数据库定义/创建 - simage是照片所在的位置 去

db.transaction(
        function(transaction) {
            transaction.executeSql(
                'CREATE TABLE IF NOT EXISTS entries (' +
                'id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, ' +
                'date DATE, sitem TEXT, snumber TEXT, ' +
                'scategory TEXT, scost TEXT, simage BLOB);'
            );
        }
    );

这是保存记录(拍照后)

function insertEntry() {
    var date = sessionStorage.currentDate;
    var snumber = $('#number').val();
    var sitem = $('#item').val();
        var scategory = $('#category').val();
        var scost = $('#cost').val();
        var simage = $('#image').val();
    db.transaction(
        function(transaction) {
            transaction.executeSql(
                'INSERT INTO entries (date, sitem, snumber, scategory,
scost, simage) VALUES (?, ?, ?, ?, ?, ?);',
                [date, sitem, snumber, scategory, scost, simage],
                function(){
                    refreshEntries();
                    jQT.goBack();
                },
                errorHandler
            );
        }
    );

}

对我遗失的内容有任何疑问?

感谢。

1 个答案:

答案 0 :(得分:1)

你必须通过Canvas的toDataUrl函数将图像(val()不能工作)转换为Base64 ...

请参阅Jesse MacFadyen有关执行此操作的文章here。有一点小问题,如果图像服务器源与页面源不一样,那么这段代码将无法在Phonegap to not having an origin-clean flag in the canvas之外工作,但这在Phonegap中运行时不会影响页面......