点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家们,
我一直坚持使用UI5自定义应用程序将任何文件格式从gatewayservice下载到本地系统。
它可以使用浏览器下载器下载文件。 但并非始终如一。 网关服务是根据发布
下面是我的上传方法(文件读取器调用)的控制器代码
reader.onload =函数(e){ var sContent = e.currentTarget.result.replace(" data:" + file.type +"; base64,",""); var sAttachService =" https://<<服务网址>/Attachments001Set(" + "" ReqNo ='" + sRequestNo +"',ProcessStep ='" + sStatus +"')/$ value"; var oModel = that.getOwnerComponent()。getModel(); var sToken = oModel.getSecurityToken(); $ .ajaxSetup({ 快取:false }); jQuery.ajax({ 网址:sAttachService, 快取:false, contentType:false, processData:否, 数据:sContent, 类型:" PUT", beforeSend:函数(xhr){ xhr.setRequestHeader(" X-CSRF-Token",sToken); xhr.setRequestHeader(" content-type",file.type); xhr.setRequestHeader(" slug",file.name); }, 成功:函数(oData){ }, 错误:函数(oError){ } }); };
下载文件的控制器代码(AJAX调用GET操作)
var sAttachService =" <<服务URL>/Attachments001Set(" + "" ReqNo ='" + sRequestNo +"',ProcessStep ='" + sStatus +"')/$ value"; var oModel = this.getOwnerComponent()。getModel(); var sToken = oModel.getSecurityToken(); $ .ajaxSetup({ 快取:false }); jQuery.ajax({ 网址:sAttachService, 快取:false, contentType:false, processData:否, 类型:" GET", beforeSend:函数(xhr){ xhr.setRequestHeader(" X-CSRF-Token",sToken); xhr.setRequestHeader(" content-type",GFileType); }, 成功:函数(oData){ var sTemp =""; 如果(sFileType ===" application/pdf"){ sTemp ="数据:应用程序/八位字节流; base64,"; }其他{ sTemp ="数据:" + sFileType +"; base64,"; } var sString = sTemp + oData; var url = window.URL.createObjectURL = sString; //window.location.assign(url); window.open(url,'_blank'); }, 错误:函数(oError){ } });
如果我在处理PDF和其他文件类型的文件内容时做错了事,请告诉我。
等待专家评论。
预先感谢
Manoj
您好 Manoj Mohanty
您为什么使用ajax调用?
因为可以使用odata模型本身,所以甚至更好的方法是使用上载集合或文件上载器,该文件可以为您处理很多事情。
请使用以下博客作为参考 ui5代码,它对于上传集合和文件上传器都类似。
https://blogs.sap.com/2018/09/18/object-services-attachments-using-uploadcollection/
在上面的博客中,有一些代码 编写以使用filereader读取文件数据,仅在要显示自定义图像的情况下才需要,我认为控件会自动显示它,不记得确切了。
谢谢
马赫什语
一周热门 更多>