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');
}

有没有办法我可以做到这一点?

先感谢您。

- 编辑 -

发生的另一个问题是,当我的后端服务器接收到文件时,它似乎已损坏并且无法作为图像读取。

4

1 回答 1

1

目前,Worklight 适配器不支持以二进制形式发送数据。

这意味着目前您唯一的选择是您不喜欢的选择,即对图像文件进行base64编码并将生成的字符串存储在数据库中,当您需要使用它时,对其进行base64解码。

于 2015-02-03T04:15:25.700 回答