如何在sapui5中将附件从前端发送到后端? 我正在使用上传收集控件。

2020-09-26 13:23发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


用于上传的拖放功能

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


用于上传的拖放功能

付费偷看设置
发送
3条回答
空代码
1楼-- · 2020-09-26 13:48

你好

您是否在SDK中寻找SAP提供的样本?

您应该做的第一件事是使用实现的Create stream方法创建OData服务,然后将UI控件的URL设置为OData。

请查看此博客:使用SAPUI5 UploadCollection通过网关上传/下载ArchiveLink文件

此致

Joseph

灬番茄
2楼-- · 2020-09-26 14:04

嗨,

使用下面的示例代码。

查看:

 
 
 
 
 
 

在控制器中:

 * ----------------------------------------------  ---------
 * SET CSRF令牌
 * -------------------------------------------------  ------
 var oModel = this.getView()。getModel();
 oModel.mCustomHeaders [" X-CSRF-Token"] ="获取";
 var LeaveTypeSet = {};
 url ="/img/LeaveTypeSet";


 oModel.read(url,null,null,true,function(oData,oResponse){
 that.busyDialog.close();
 oModel.oHeaders [" x-csrf-token"] = oResponse.headers [" x-csrf-token"];
 oModel.bTokenRequested = true;
 LeaveTypeSet = oData;
 var data = {


 " leaveTypeSet":离开类型集


 };
 var jModel = new sap.ui.model.json.JSONModel(data);
 var LeaveTypeId = that.getView()。byId(" leaveformTypeofLeaveId");
 LeaveTypeId.setModel(jModel);
 删除oModel.mCustomHeaders [" X-CSRF-Token"];
 },函数(错误){
 that.busyDialog.close();
//在调用失败的情况下执行
 var obj = JSON.parse(err.response.body);
 var msg = obj.error.message.value;
 var msgTitle =" Error";
 sap.m.MessageBox.show(msg,{
 图标:sap.m.MessageBox.Icon.ERROR,
 标题:msgTitle,
 动作:[sap.m.MessageBox.Action.OK],
 });
 });

 * -------------------------------------------------  ---------
 *其他功能
 * -------------------------------------------------  ---------
 onBeforeUploadFile:function(e){


 var id = e.mParameters.id;
 var fileupload = sap.ui.getCore()。byId(id);


 fileupload.setCustomHeader('slug',e.getParameters()。name);
 fileupload.setXsrfToken(this.getView()。getModel()。oHeaders [" x-csrf-token"]));
 var oFileUpload = that.getView()。byId('fileuploadLV');
 var lbl = oFileUpload._oToolBar.getContent()[2];
 lbl.setText(" PDF附件");
 oFileUpload.setMultipleSelectionEnabled(false);
 that.getView()。byId(" fileuploadLV")。setUploadEnabled(true);
 },


/*处理上载文件事件*/
 onUploadFile:function(oEventData){
 var id = oEventData.mParameters.id;
 var oData = oEventData.getParameters();
 var dataItem = new Object();
//alert("Filename:"+oData.Fieldname)
 var fileupload = sap.ui.getCore()。byId(id);
//检查文件类型和大小
 if(oData.d!=未定义){
 if(oData.d.FileName ==" E_SIZE"){
 fileupload.abortUpload();
 sap.ca.ui.message.showMessageBox({
 类型:sap.ca.ui.message.Type.ERROR,
 消息:"文件大小应小于1 MB"
 });
 返回;
 }否则if(oData.d.FileName ==" E_TYPE"){
 fileupload.abortUpload();
 sap.ca.ui.message.showMessageBox({
 类型:sap.ca.ui.message.Type.ERROR,
 消息:"上传扩展名为.pdf的文件"
 });
 返回;
 }其他{


 dataItem.filename = oData.d.FileName;
//dataItem.documentId = oData.d.Docid;
 if(window.location.href.substring(0,5)!= oData.d .__ metadata.media_src.substring(0,5)){
 oData.d .__ metadata.media_src=
 window.location.href.substring(0,6)+
 oData.d .__ metadata.media_src.substring(5,oData.d .__ metadata.media_src.length);
 }


 dataItem.url = oData.d .__ metadata.media_src;
 dataItem.mimeType = oData.d.ContentType;
 fileupload.commitFileUpload(dataItem);
 }


 }否则if(oData!= undefined){
 if(oData.FileName ==" E_SIZE"){
 fileupload.abortUpload();
 sap.ca.ui.message.showMessageBox({
 类型:sap.ca.ui.message.Type.ERROR,
 消息:"文件大小应小于1 MB"
 });
 返回;


 }否则if(oData.FileName ==" E_TYPE"){
 fileupload.abortUpload();
 sap.ca.ui.message.showMessageBox({
 类型:sap.ca.ui.message.Type.ERROR,
 消息:"上传扩展名为.pdf的文件"
 });
 返回;
 }其他{
 dataItem.filename = oData.FileName;
//dataItem.documentId = oData.Docid;
 dataItem.mimeType = oData.ContentType;
 dataItem.url = oData .__ metadata.media_src;
 fileupload.commitFileUpload(dataItem);


 }
 }
 var oFileUpload = that.getView()。byId('fileuploadLV');
 var lbl = oFileUpload._oToolBar.getContent()[2];
 lbl.setText(" PDF附件");
 that.getView()。byId(" fileuploadLV")。setUploadEnabled(false);
 },




/*处理删除文件事件*/
 onDeleteFile:function(oEventData){
 var id = oEventData.mParameters.id;
 sap.ui.getCore()。byId(id).removeFile(oEventData.mParameters.documentId);
 var model = this.getView()。getModel();
 var fldName ="";
 var sValidate =" AttachmentListSet('')";
 model.remove(sValidate,null,null,false,function(oData,oResponse){
//alert(" success");
 },函数(错误){
 var message = JSON.parse(err.response.body).error.message.value;
 sap.m.MessageBox.show(消息,
 sap.m.MessageBox.Icon.ERROR,
 "错误");
 });
 var oFileUpload = that.getView()。byId('fileuploadLV');
 var lbl = oFileUpload._oToolBar.getContent()[2];
 lbl.setText(" PDF附件");
 that.getView()。byId(" fileuploadLV")。setUploadEnabled(true);


 },
 
一只江湖小虾
3楼-- · 2020-09-26 13:46

你好,

您可以使用文件上传器,在更改时触发控制器中的一个方法,然后在该方法中获取模型的csrf令牌,并通过AJAX将附件发送到后端。

视图:-

 
 
 
 
 
 

控制器:-

 handleUploadComplete:function(evt){
 var oFileUpload = sap.ui.getCore()。byId(" fileUploader");
 var f = evt.oSource.oFileUpload.files [0];
 var entry = {};
 entry.Photo = f;

 var url =" your-service-url/userPhotoSet('" + this._id +"')/$ value";
//var oRequest = this.getView()。getModel()._ createRequest();
 var oHeaders = {
 " x-csrf-token":this._token
 };

 jQuery.ajax({
 类型:" PUT",
 url:url,
 标头:oHeader,
 快取:false,
 contentType:false,
 processData:否,
 数据:f,
 成功:function(){},
 错误:function(err){console.log(err);}
 });


 },
 

一周热门 更多>