我试图了解如何使用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');
}
我有办法做到这一点吗?
提前谢谢。
- 编辑 -
发生的另一个问题是,当我的后端服务器收到文件时,它似乎已损坏,无法作为图像重新加载。
答案 0 :(得分:1)
目前,Worklight适配器不支持以二进制形式发送数据。
这意味着目前您唯一的选择是您不喜欢的选项,即base64编码图像文件并将结果字符串存储在数据库中,当您需要使用它时,对它进行base64解码。