2

Worklight アダプターを使用してバックエンド サーバーに画像を送信する方法を見つけようとしています。Base64 エンコーディングを使用して Worklight アダプター経由で送信できることはわかっていますが、これはサーバー間のトラフィックが約 30% 増加し、望ましくない処理オーバーヘッドが発生することを意味します。

今のところ、以下に示すように Phonegap FileTransfer ライブラリーを使用していますが、これにより、クライアントとバックエンド サーバーの間に直接接続が作成され、必要に応じて Worklight サーバーを経由しなくなります。

var options = new FileUploadOptions();
options.fileKey="file";
options.fileName=imageURI.substr(imageURI.lastIndexOf('/')+1);
options.mimeType="image/jpeg";

var headers = {"Content-Type": "image/jpeg"};
options.headers = headers;

var ft = new FileTransfer();
ft.upload(imageURI, encodeURI(host + "/images"), imageUploadSuccess, imageUploadFail, options);

function imageUploadSuccess(r) {
    WL.Logger.debug("Submit success! HTTP Status Code = " + r.responseCode);
    WL.Logger.debug("Response = " + r.response);
    WL.Logger.debug("Bytes sent = " + r.bytesSent);
    $.mobile.changePage('#SuccessPage');
}
function imageUploadFail(error) {
    WL.Logger.debug("submit error! source = " + error.source);
    WL.Logger.debug("target = " + error.target);
    $.mobile.changePage('#FailPage');
}

それを行う方法はありますか?

前もって感謝します。

- 編集 -

発生するもう 1 つの問題は、バックエンド サーバーがファイルを受信したときに、ファイルが破損しているように見え、イメージとして読み取れないことです。

4

1 に答える 1