0

画像をbase64文字列に変換してxml経由で送信する際に問題が発生しています。写真を撮ったときに画像の場所(フルパス)をデータベースに保存しましたが、今それをアップロードしようとしています。(results.rows.item(i).PictureFile) にあるファイルを読み取り、それを base64 に変換しようとしています。以下は、これを行うために使用するコードの一部です。誰もが助けるためにできることは何でも素晴らしいでしょう。

   function submitPhoto(PhotoId)
{
    g_submitXML = '';
    var err = '';
    var errorsArr = $.makeArray(err);
    window.g_submitXML = '';
    window.g_submitXML = window.g_submitXML + '';
    window.g_submitXML = window.g_submitXML + '';
    window.g_submitXML = window.g_submitXML + '';
    console.log("successfully started the xml with: " + window.g_submitXML);

    var db = window.openDatabase("MobileData", "3.0", "MobilePhoneData", 1000000);
    db.transaction(function (tx) {
        tx.executeSql('SELECT * FROM MobilePhotos WHERE PhotoId = ' + PhotoId + '', 
          [], 
            function(tx, results) {
                console.log("HIT THE RESULTS PHOTO FUNCTION");
                var len = results.rows.length;
                console.log("Photo table: " + len + " rows found.");
                 for (var i = 0; i < len; i++)
                    {
                     window.g_submitXML = window.g_submitXML + '<EMBEDDED_FILE _Type="JPEG" _Name="Image_' + i + '"';
                     window.g_submitXML = window.g_submitXML + '_Extension=.jpg _EncodingType="Base64" _ImageOrientation="' + results.rows.item(i).PictureLocationDesc + '">';
                     window.g_submitXML = window.g_submitXML + '<DOCUMENT>';
                     var reader = new FileReader();
                 console.log(results.rows.item(i).PictureFile);
//I am having problems with the line below
                     window.g_submitXML = window.g_submitXML + reader.readAsDataURL(fileSystem.root.getFile(results.rows.item(i).PictureFile));
//I am having problems with the line above ^
                     window.g_submitXML = window.g_submitXML + '</DOCUMENT>';
                     window.g_submitXML = window.g_submitXML + '</EMBEDDED_FILE>';
                    }
        }, 
        console.log("ERROR"));
});


}

問題がある行の上下にコメントしました。

ありがとう!

4

1 に答える 1