Я пытаюсь выяснить, как отправлять изображения на мой внутренний сервер с помощью адаптеров Worklight. Я знаю, что могу отправлять их через адаптеры Worklight, используя кодировку Base64, но это подразумевает увеличение трафика между серверами примерно на 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');
}
Есть ли способ, которым я могу это сделать?
Заранее спасибо.
-- Редактировать --
Другая возникающая проблема заключается в том, что когда мой внутренний сервер получает файл, он кажется поврежденным и не может быть прочитан как изображение.
compressResponse
в вашемinvokeProcedure
- person Srik   schedule 05.11.2013