Skip to Content
0
Sep 04, 2023 at 12:25 PM

Create Stream when uploading attachments

168 Views Last edit Sep 04, 2023 at 12:27 PM 2 rev

Hi Experts,

I am using Uploadset UI5 control for attaching docs. I have "Submit" button to send the attachment to backend.

In my controller when i use the below code,

 

var serviceurl = "/sap/opu/odata/sap/ZI_XX_SRV/";

var oModel = new sap.ui.model.odata.v2.ODataModel(serviceurl);

//Locate base64 content//

var base64Index = e.target.result.indexOf(base64_marker) + base64_marker.length;

// Get base 64 content//

var base64 = e.target.result.substring(base64Index);

oFileRaw.data = base64;

var mHeaders = {

"slug": oController.byId("UploadSet3").getHeaderFields()[1].getText().split("|")[0],

"Content-Type": oController.byId("UploadSet3").getHeaderFields()[2].getText()

};

oModel.setHeaders(mHeaders);

oModel.create(entityset, payLoad, {

success: function (oData, response) {

debugger;

alert("yes");

},

error: function (response) {

debugger;

alert("No");

}

});

It doesnot trigger the backend call and gives error "no hadler for data".

So now i am making the oModel change (removing v2) .

var oModel = new sap.ui.model.odata.ODataModel(serviceurl);

Now my odata is triggering, i am getting only slug & content type in headers but my content in payload is not receiving in backend.

So now i have commented my code

 

//var mHeaders = {

// "slug": oController.byId("UploadSet3").getHeaderFields()[1].getText().split("|")[0],

// "Content-Type": oController.byId("UploadSet3").getHeaderFields()[2].getText()

// };

//oModel.setHeaders(mHeaders);

Now in backend i am getting my payload but i am not getting my headers since i have commented.

How should i receive both headers(slug & Content type) and payload in a single call? Do i need to use "v2" in my odata service or not?

Please help how to resolve this issue

Thanks,

Gowtham