簡體   English   中英

將圖像上傳到 SAP OData 服務的問題 - Put 方法

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

我已經實現了 SAPUI5 簽名板並將圖像(簽名內容)發送到 SAP。 我的問題是使用 OData.request Put 方法將簽名板圖像數據傳遞給 SAP。

第 1 步:我能夠獲取簽名板圖像數據(內容)並附上內容的副本,如下所示

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

第 2 步:使用 OData.request put 方法將圖像數據發送到 SAP。 在 SAP /IWBEP/IF_MGW_APPL_SRV_RUNTIME~UPDATE_STREAM class 方法中,我只收到 IS_MEDIA_RESOURCE-mime_type 我無法獲得 IS_MEDIA_RESOURCE 值。 下面是我的 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);

問候塞巴斯蒂安

看看這個線程 它很好地解釋了通過 Sap Netweaver Gateway 中的數據 stream 上傳圖像需要做什么。

干杯,塞波

不確定您使用的是哪個 odata model,但適用於 v2。 沒有數據屬性可以提交任何數據。 此方法適用於 odata 而非二進制數據。

-> 在此處輸入圖像描述

使用上傳控件。 例如 sap.m.UploadCollection,如下例所示: https://sapui5.hana.ondemand.com/#/entity/sap.m.UploadCollection/sample/sap.m.sample.UploadCollectionVersioning

更新:二進制日期意味着直接二進制數據。 可以將 Binaray 包裹在 odata(json) 表示中。 但這有很大的缺點。 盡可能使用流。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM