将图像作为blob上载到SAP netweaver网关oData模型

时间:2015-06-02 08:53:18

标签: javascript ajax odata blob sapui5

我尝试使用以下方法通过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)。 我在这里缺少什么?

0 个答案:

没有答案