画像を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"));
});
}
問題がある行の上下にコメントしました。
ありがとう!