2017-09-22 5 views
0

Quelqu'un peut-il m'aider? J'ai implémenté un téléchargement/téléchargement de fichier en UI5 qui semble fonctionner mais quand je télécharge le fichier, il est corrompu et je ne peux pas l'ouvrir. Pour l'instant je teste uniquement avec des fichiers d'image:Le téléchargement du fichier SAPUI5 est corrompu

   new sap.ui.unified.FileUploader({ 
        buttonOnly: true, 
        buttonText: "Upload files", 
        icon: "sap-icon://upload", 
        change: function(oEvent) { 
         var oFileUploader = oEvent.getSource(); 
         oItem = oFileUploader.getParent().getParent().getParent(); 
         var sPath = oItem.getBindingContext().getPath(); 
         var files = oEvent.getParameter("files"); 
         var file = files[0]; 
         if (file) { 
          var oNewFile = { 
           ID: that.count++, 
           SurveyAnswerID: oSA.ID, 
           FileName: oEvent.getParameter("newValue"), 
           FileBinary: null, 
           MimeType: "image/jpeg", 
           Mode: "POST" 
          }; 
          var reader = new FileReader(); 
          reader.onload = function(evt) { 
           var binaryString = evt.target.result; 
           oNewFile.FileBinary = binaryString; 
          }; 
          reader.readAsBinaryString(file); 
         } else { 
          oNewFile.FileBinary = ""; 
          oNewFile.FileName = ""; 
          MessageToast.show("Something went wrong with the file upload.\n Please try again"); 
         } 
         that._pushItemToFileUploadModel(oNewFile.ID, oNewFile); 
         that._getFileUploadModel().refresh(); 
        } 
       }) 

Code de téléchargement:

 selectionChange: function(oEvent) { 
      var item = oEvent.getSource().getSelectedItem(); 
      var model = that._getFileUploadModel(); 
      if (item) { 
       var a = window.document.createElement('a'); 
       a.href = window.URL.createObjectURL(new Blob([item.getDocumentId()], { 
        type: item.getMimeType() 
       })); 
       a.download = item.getFileName(); 
       // Append anchor to body. 
       document.body.appendChild(a); 
       a.click(); 
       // Remove anchor from body 
       document.body.removeChild(a); 
      } 

      try { 
       oEvent.getSource()._oList.removeSelections(); 
      } catch (e) { 
       //DO nothing 
      } 

     }, 

Quelle que je fais mal ici?

Répondre

0

Je résolu mon problème de convertir le fichier de cette façon:

    var u8_2 = new Uint8Array(atob(data).split("").map(function(c) { 
         return c.charCodeAt(0); 
        })); 

        var a = window.document.createElement('a'); 
        a.href = window.URL.createObjectURL(new Blob([u8_2], { 
         type: item.getMimeType() 
        }));