简体   繁体   English

将图像上传到 SAP OData 服务的问题 - Put 方法

[英]Issue with uploading image to SAP OData Service - Put Method

I have implemented SAPUI5 signature pad and sending image(signature content) to SAP.我已经实现了 SAPUI5 签名板并将图像(签名内容)发送到 SAP。 My issue is passing signature pad image data to SAP using OData.request Put method.我的问题是使用 OData.request Put 方法将签名板图像数据传递给 SAP。

Step 1: I am able to get signature pad image data(content) and attached is copy of content looks like第 1 步:我能够获取签名板图像数据(内容)并附上内容的副本,如下所示

"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCABkAlgDASIAAhEBAxEB "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCABkAlgDASIAAhEBAxEB

Step 2: Sending Image data to SAP using OData.request put method.第 2 步:使用 OData.request put 方法将图像数据发送到 SAP。 In SAP /IWBEP/IF_MGW_APPL_SRV_RUNTIME~UPDATE_STREAM class method I am only receiving IS_MEDIA_RESOURCE-mime_type I am not able to get IS_MEDIA_RESOURCE-value.在 SAP /IWBEP/IF_MGW_APPL_SRV_RUNTIME~UPDATE_STREAM class 方法中,我只收到 IS_MEDIA_RESOURCE-mime_type 我无法获得 IS_MEDIA_RESOURCE 值。 Below is my OData call logic:下面是我的 OData 调用逻辑:

 var oModel = this.getView().getModel(); oModel.setUseBatch(false); var oData = {}; oData.Belnr = "4567891238"; oData.DocType = "ZLIEF"; oData.Role = "LKW"; var dataURL = this.byId("pressDialog").getContent()[2].getItems()[1]._getCanvasAsPicture("image/jpeg"); var base64string = dataURL.split(",")[1]; var serviceUrl = "/DigitalSignatureSet?(Belnr='" + oData.Belnr + "',DocType='" + oData.DocType + "',Role='" + oData.Role + "')/$value"; oModel.update(serviceUrl, oData, { method: "PUT", headers: { "X-Requested-With": "XMLHttpRequest", "Content-Type": "image/jpeg", "DataServiceVersion": "2.0", "X-CSRF-Token": this.getView().getModel().getSecurityToken() }, data: base64string }); oModel.submitChanges(mParameters);

Regards Sebastian问候塞巴斯蒂安

Have a look at this thread .看看这个线程 It gives a pretty good explanation of what you need to do to upload an image by means of a data stream in Sap Netweaver Gateway.它很好地解释了通过 Sap Netweaver Gateway 中的数据 stream 上传图像需要做什么。

Cheers, SePo干杯,塞波

Not sure which odata model are you using but for v2.不确定您使用的是哪个 odata model,但适用于 v2。 There is no data property to submit any data.没有数据属性可以提交任何数据。 This method is for odata not binary data.此方法适用于 odata 而非二进制数据。

-> see -> 在此处输入图像描述

use a upload control.使用上传控件。 For example sap.m.UploadCollection like shown in this example: https://sapui5.hana.ondemand.com/#/entity/sap.m.UploadCollection/sample/sap.m.sample.UploadCollectionVersioning例如 sap.m.UploadCollection,如下例所示: https://sapui5.hana.ondemand.com/#/entity/sap.m.UploadCollection/sample/sap.m.sample.UploadCollectionVersioning

Update: Binary date means direct binaray data.更新:二进制日期意味着直接二进制数据。 It it possible to wrappe Binaray around an odata(json) representation.可以将 Binaray 包裹在 odata(json) 表示中。 But this has major drawbacks.但这有很大的缺点。 Use streams if possible.尽可能使用流。

update("/MyAttachments", {"bnarayDataAsAODataProperty": "0101010100101"})

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM