File upload SAPUI5-具有未定义参数的文件上载程序

File upload SAPUI5-具有未定义参数的文件上载程序,file-upload,sapui5,File Upload,Sapui5,我试图实现一个sap.ui.unified.FileUploader,但在使用change函数时,事件(e)中的参数未定义。最奇怪的是,我在JS fidler上有一个例子,它在那里工作,但在我的页面上没有。 代码如下: var f = new sap.ui.unified.FileUploader({ uploadUrl : "", buttonText : "Upload", fileType : "csv", maximumFileSize

我试图实现一个sap.ui.unified.FileUploader,但在使用change函数时,事件(e)中的参数未定义。最奇怪的是,我在JS fidler上有一个例子,它在那里工作,但在我的页面上没有。 代码如下:

var f = new sap.ui.unified.FileUploader({ 
     uploadUrl : "",
     buttonText : "Upload",  
     fileType : "csv",  
     maximumFileSize : 1,
     icon : "sap-icon://upload",
     change : function(e){
         console.log("aqui");
         var file = e.getParameter("files") && e.getParameter("files")[0];
         console.log(file);
         if (file && window.FileReader){  
             var reader = new FileReader();  
             var that = this;  
             reader.onload = function(evn) {  
                 var strCSV= evn.target.result; //string in CSV 
                 alert(strCSV);
             };
             reader.readAsText(file);  
         }
     }
 });
文件var在我的页面上变为未定义。 有什么想法吗? 谢谢


更新:当我试图从事件e获取getParameters方法时,我只获取id和名称,而在fidler中,我获取id、名称和文件。。。这是fidler链接

您可以这样做:

在视图文件中:

new sap.ui.unified.FileUploader({
   uploadUrl : "serviceURL",
   name: "simpleUploader",   
   uploadOnChange: false,  
   sendXHR: true,  
   useMultipart: false,
})
与以下按钮组合使用:

new sap.m.Button({
   text : "{i18n>UPLOAD}",
   icon : "sap-icon://upload",
   type : sap.m.ButtonType.Accept,
   press : [ oController.onStartUpload, oController ]
})
在相应的控制器文件中:

onStartUpload : function(oEvent) {
    var oFileUploader = // TODO get the file uploader
    var sFile = oFileUploader.getValue();
    if (sFile==="") {
        // TODO no file selected
        return;
    }
    oFileUploader.destroyHeaderParameters();
    that.getModel("modelName").refreshSecurityToken();  
    oFileUploader.insertHeaderParameter(new sap.ui.unified.FileUploaderParameter({name: "x-csrf-token", value: that.getModel("modelName").getHeaders()['x-csrf-token'] }));
    oFileUploader.insertHeaderParameter(new sap.ui.unified.FileUploaderParameter({name: "slug", value: oFileUploader.getValue() }));
    oFileUploader.upload();     
},