我尝试使用以下方法通过Gateway oData模型将我的SAPUI5应用程序上捕获的图像上传到SAP服务器
http://scn.sap.com/community/developer-center/front-end/blog/2015/05/07/upload-images-from-sap-ui5
你可以在下面找到我的代码。 (imageData是画布对象)
imageData.toBlob(function(blob){
var reader = new FileReader();
reader.readAsArrayBuffer(blob); //array buffer
reader.onload = function (evt){
var fileTarget = evt.target.result;
var oModel = new sap.ui.model.odata.ODataModel("<server url>") ;
oModel.refreshSecurityToken(
function(a, b) {
oModel.oHeaders = {
"x-csrf-token" : b.headers["x-csrf-token"],
"slug" : notifNum + ",inspectionImage,PNG,N",
"Content-Type" : "image/png",
};
oModel.create('/<service name>',fileTarget,{
//merge : true,
success : function(postData, response){
var x;
alert("success");
},
error : function(error){
alert("epic fail")
}
});
}, function(a) {
successFaultCallBack.apply(context,[a, false]);
}, false);
}
},"image/png");
但是当我在服务器上调试请求时,图像内容被截断为285个字符(通常图像内容有500000个字符)。但是在浏览器上我可以看到内容长度是正确的(通过在oModel.create方法之前执行fileTarget.byteLength)。 我在这里缺少什么?