【问题标题】:Phonegap Database problem - storing images in the databasePhonegap 数据库问题 - 在数据库中存储图像
【发布时间】:2011-03-30 18:07:21
【问题描述】:

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

我看过这个

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

}

对我缺少什么有什么想法吗?

谢谢。

【问题讨论】:

    标签: iphone sqlite mobile-safari cordova


    【解决方案1】:

    您必须通过 Canvas 的 toDataUrl 函数将图像(val() 不起作用)转换为 Base64...

    请参阅 Jesse MacFadyen 的文章here。有个小问题,如果图像服务器源与页面源不同,由于to not having an origin-clean flag in the canvas,此代码将无法在 Phonegap 之外运行,但是在 Phonegap 中运行时这不会影响页面...

    【讨论】:

    • .. 然后将其保存为文本,而不是数据库中的 BLOB。
    猜你喜欢
    • 2012-01-30
    • 2013-04-12
    • 1970-01-01
    • 2017-01-27
    • 2011-06-21
    • 2011-05-15
    • 2011-02-16
    • 2020-10-17
    • 2012-10-17
    相关资源
    最近更新 更多