如何在SAPUI5中上载文件

如何在SAPUI5中上载文件,sapui5,Sapui5,如何使用SAPUI5在SAP Netweaver服务器中上载文件?我试图上传文件使用FileUploader,但没有得到运气,如果任何人可以帮助它将非常感谢。提前感谢如果我们能看到您的代码就好了 这应该行得通 var layout = new sap.ui.commons.layout.MatrixLayout(); layout.setLayoutFixed(false); // create the uploader and disable the automatic upload var

如何使用SAPUI5在SAP Netweaver服务器中上载文件?我试图上传文件使用FileUploader,但没有得到运气,如果任何人可以帮助它将非常感谢。提前感谢

如果我们能看到您的代码就好了

这应该行得通

var layout = new sap.ui.commons.layout.MatrixLayout();
layout.setLayoutFixed(false);

// create the uploader and disable the automatic upload
var oFileUploader2 = new sap.ui.commons.FileUploader({
    name : "upload2",
    uploadOnChange : false,
    uploadUrl : "../../../upload"
});
layout.createRow(oFileUploader2);

// create a second button to trigger the upload
var oTriggerButton = new sap.ui.commons.Button({
    text : 'Trigger Upload',
    press : function() {
        // call the upload method
        oFileUploader2.upload();
    }
});
layout.createRow(oTriggerButton);

layout.placeAt("sample2");

如果我们能看到你的代码就好了

这应该行得通

var layout = new sap.ui.commons.layout.MatrixLayout();
layout.setLayoutFixed(false);

// create the uploader and disable the automatic upload
var oFileUploader2 = new sap.ui.commons.FileUploader({
    name : "upload2",
    uploadOnChange : false,
    uploadUrl : "../../../upload"
});
layout.createRow(oFileUploader2);

// create a second button to trigger the upload
var oTriggerButton = new sap.ui.commons.Button({
    text : 'Trigger Upload',
    press : function() {
        // call the upload method
        oFileUploader2.upload();
    }
});
layout.createRow(oTriggerButton);

layout.placeAt("sample2");

在进一步研究这个问题后,我最终自己解决了这个问题,我在php中放置了一个文件控制器和一个上传器,它将返回与文件相关的详细信息,我们可以使用它将其上传到服务器上

这是我使用的代码

fileUpload.html


你好,世界
var layout=new sap.ui.commons.layout.MatrixLayout();
布局。setLayoutFixed(false);
//创建上载程序并禁用自动上载
var oFileUploader2=new sap.ui.commons.FileUploader(“myupload”{
名称:“上传2”,
uploadOnChange:true,
uploadUrl:“uploader.php”,
上传完成:功能(oEvent){
var sResponse=oEvent.getParameter(“响应”);
如果(响应){
警惕(应答);
}
}});                        
layout.createRow(oFileUploader2);
//创建第二个按钮以触发上载
var oTriggerButton=new sap.ui.commons.Button({
文本:'Trigger Upload',
按:函数(){
//调用upload方法
oFileUploader2.upload();
$(“#myupload-fu_表单”).submit();
警报(“hi”);
}
});
layout.createRow(otrigger按钮);
布局。放置位置(“样本2”);
uploader.php


在进一步研究这个问题后,我终于自己解决了这个问题,我在php中放置了一个文件控制器和一个上传器,它将返回与文件相关的详细信息,我们可以使用它将其上传到服务器上

这是我使用的代码

fileUpload.html


你好,世界
var layout=new sap.ui.commons.layout.MatrixLayout();
布局。setLayoutFixed(false);
//创建上载程序并禁用自动上载
var oFileUploader2=new sap.ui.commons.FileUploader(“myupload”{
名称:“上传2”,
uploadOnChange:true,
uploadUrl:“uploader.php”,
上传完成:功能(oEvent){
var sResponse=oEvent.getParameter(“响应”);
如果(响应){
警惕(应答);
}
}});                        
layout.createRow(oFileUploader2);
//创建第二个按钮以触发上载
var oTriggerButton=new sap.ui.commons.Button({
文本:'Trigger Upload',
按:函数(){
//调用upload方法
oFileUploader2.upload();
$(“#myupload-fu_表单”).submit();
警报(“hi”);
}
});
layout.createRow(otrigger按钮);
布局。放置位置(“样本2”);
uploader.php


未向清单、组件或索引文件添加任何内容。这对我来说是可行的,你只需要将列的数量更改为适合你的文件的任何列

UploadFile.view.xml

UploadFile.controller.js
sap.ui.define([“sap/ui/core/mvc/Controller”、“sap/m/MessageToast”、“sap/m/MessageBox”、“sap/ui/core/routing/History”]),函数(
控制器、MessageToast、MessageBox、历史记录){
“严格使用”;
return Controller.extend(“cafeteria.Controller.EmployeeFileUpload”{
onNavBack:function(){
var oHistory=History.getInstance();
var sPreviousHash=oHistory.getPreviousHash();
if(sPreviousHash!==未定义){
window.history.go(-1);
}否则{
var oRouter=sap.ui.core.UIComponent.getRouterFor(this);
oRouter.navTo(“管理”,真);
}
},
handleTypeMissmatch:功能(oEvent){
var aFileTypes=oEvent.getSource().getFileType();
每个(文件类型、函数(键、值){
aFileTypes[键]=“*.”+值;
});
var sSupportedFileTypes=aFileTypes.join(“,”);
MessageToast.show(“文件类型*”+oEvent.getParameter(“文件类型”)+
“不支持。请选择以下类型之一:”+
支持文件类型);
},
HandleValue更改:功能(oEvent){
MessageToast.show(“按‘上载文件’上载文件’”+oEvent.getParameter(“newValue”)+“””);
},
手柄文件大小:功能(oEvent){
MessageToast.show(“文件大小不应超过10 MB”);
},
HandleFileName长度:函数(oEvent){
MessageToast.show(“文件名应该小于该值。”);
},
onUpload:功能(e){
var oResourceBundle=this.getView().getModel(“i18n”).getResourceBundle();
var fU=this.getView().byId(“idfileUploader”);
var domRef=fU.getFocusDomRef();
var file=domRef.files[0];
var reader=new FileReader();
var params=“EmployeesJson=”;
reader.onload=函数(oEvent){
var strCSV=oEvent.target.result;
var arrCSV=strCSV.match(/[\w.]+(?=,?)/g);
var noOfCols=6;
var headerRow=Arrcv.拼接(0,noOfCols);
var数据=[];
而(arrcv.length>0){
var obj={};
var row=arrcv.拼接(0,noOfCols);
对于(变量i=0;i<?php
    print_r($_FILES);
?>
<VBox>
    <sap.ui.unified:FileUploader id="idfileUploader" typeMissmatch="handleTypeMissmatch" change="handleValueChange" maximumFileSize="10" fileSizeExceed="handleFileSize" maximumFilenameLength="50" filenameLengthExceed="handleFileNameLength" multiple="false" width="50%" sameFilenameAllowed="false" buttonText="Browse" fileType="CSV" style="Emphasized" placeholder="Choose a CSV file"/>
    <Button text="Upload your file" press="onUpload" type="Emphasized"/>
</VBox>
sap.ui.define(["sap/ui/core/mvc/Controller", "sap/m/MessageToast", "sap/m/MessageBox", "sap/ui/core/routing/History"], function(
    Controller, MessageToast, MessageBox, History) {
  "use strict";

  return Controller.extend("cafeteria.controller.EmployeeFileUpload", {
    onNavBack: function() {
      var oHistory = History.getInstance();
      var sPreviousHash = oHistory.getPreviousHash();
      if (sPreviousHash !== undefined) {
        window.history.go(-1);
      } else {
        var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
        oRouter.navTo("admin", true);
      }
    },
    handleTypeMissmatch: function(oEvent) {
      var aFileTypes = oEvent.getSource().getFileType();
      jQuery.each(aFileTypes, function(key, value) {
        aFileTypes[key] = "*." + value;
      });
      var sSupportedFileTypes = aFileTypes.join(", ");
      MessageToast.show("The file type *." + oEvent.getParameter("fileType") +
        " is not supported. Choose one of the following types: " +
        sSupportedFileTypes);
    },
    handleValueChange: function(oEvent) {
      MessageToast.show("Press 'Upload File' to upload file '" + oEvent.getParameter("newValue") + "'");
    },
    handleFileSize: function(oEvent) {
      MessageToast.show("The file size should not exceed 10 MB.");
    },
    handleFileNameLength: function(oEvent) {
      MessageToast.show("The file name should be less than that.");
    },
    onUpload: function(e) {
      var oResourceBundle = this.getView().getModel("i18n").getResourceBundle();
      var fU = this.getView().byId("idfileUploader");
      var domRef = fU.getFocusDomRef();
      var file = domRef.files[0];
      var reader = new FileReader();
      var params = "EmployeesJson=";
      reader.onload = function(oEvent) {
        var strCSV = oEvent.target.result;
        var arrCSV = strCSV.match(/[\w .]+(?=,?)/g);
        var noOfCols = 6;
        var headerRow = arrCSV.splice(0, noOfCols);
        var data = [];
        while (arrCSV.length > 0) {
          var obj = {};
          var row = arrCSV.splice(0, noOfCols);
          for (var i = 0; i < row.length; i++) {
            obj[headerRow[i]] = row[i].trim();
          }
          data.push(obj);
        }
        var Len = data.length;
        data.reverse();
        params += "[";
        for (var j = 0; j < Len; j++) {
          params += JSON.stringify(data.pop()) + ", ";
        }
        params = params.substring(0, params.length - 2);
        params += "]";
        // MessageBox.show(params);
        var http = new XMLHttpRequest();
        var url = oResourceBundle.getText("UploadEmployeesFile").toString();
        http.onreadystatechange = function() {
          if (http.readyState === 4 && http.status === 200) {
            var json = JSON.parse(http.responseText);
            var status = json.status.toString();
            switch (status) {
              case "Success":
                MessageToast.show("Data is uploaded succesfully.");
                break;
              default:
                MessageToast.show("Data was not uploaded.");
            }
          }
        };
        http.open("POST", url, true);
        http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        http.send(params);
      };
      reader.readAsBinaryString(file);
    }
  });
});