Проблема с PhoneGap Database - хранение изображений в базе данных - PullRequest
2 голосов
/ 17 августа 2010

Я пытаюсь сделать очень простое приложение для инвентаря с возможностью включения фотографии предметов в инвентарь.У меня все работает, кроме части фотографии ...

Я смотрел на это

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 Ответ

1 голос
/ 17 августа 2010

Вы должны преобразовать изображение (val () не будет работать) в Base64 с помощью функции toDataUrl Canvas ...

См. Статью Джесси МакФадьена об этом здесь . Небольшое замечание: если источник сервера изображений не совпадает с исходным кодом страницы, этот код не будет работать за пределами Phonegap из-за из-за отсутствия флага очистки источника на холсте , однако это не влияет страница при работе в PhoneGap ...

...