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 つの問題は、バックエンド サーバーがファイルを受信したときに、ファイルが破損しているように見え、イメージとして読み取れないことです。