2017-07-19 136 views
2

我正在使用SAPUI5 UploadCollection進行多項和即時上傳功能。SAPUI5請求有效載荷問題UploadCollection

和我使用的參數,這樣

  <parameters> 
       <UploadCollectionParameter name="Nbr" value="12" /> 
      </parameters> 
      <headerParameters> 
       <UploadCollectionParameter name="Nbr" value="12" /> 
      </headerParameters> 

但是,當我看到在Chrome瀏覽器網絡選項卡的開發人員工具,我沒有得到請求負載。

以下代碼我正在使用。

<UploadCollection 
       id="UploadCollection" 
       maximumFilenameLength="55" 
       maximumFileSize="10" 
       multiple="false" 
       showSeparators="All" 
       change="onChange" 
       fileSizeExceed="onFileSizeExceed" 
       selectionChange="onSelectionChange" 
       typeMissmatch="onTypeMissmatch" 
       uploadComplete="onUploadComplete" 
       beforeUploadStarts="onBeforeUploadStarts" 
       uploadTerminated="onUploadTerminated" 
       items="{MeterTicketsModel>/returnData}" 

       mode="MultiSelect"> 

       <toolbar> 
        <OverflowToolbar id="myId" > 
         <Title id="attachmentTitle"/> 
         <ToolbarSpacer/> 
         <Button id="downloadButton" text="Download" press="onDownloadItem" enabled="false" type="Transparent"></Button> 
         <Button id="versionButton" text="Upload a new version" press="onVersion" enabled="false" type="Transparent"></Button> 
         <UploadCollectionToolbarPlaceholder></UploadCollectionToolbarPlaceholder> 
        </OverflowToolbar> 
       </toolbar> 
       <items> 
        <UploadCollectionItem 
         documentId="{documentId}" 
         fileName="{MeterTicketsModel>fileName}" 
         mimeType="{mimeType}" 
         thumbnailUrl="{thumbnailUrl}" 
         url="{url}" 
         enableEdit="false" 
         enableDelete="false" 
         visibleDelete="false" 
         visibleEdit="false" 
         attributes="{path : 'attributes', templateShareable : 'true'}" 
         statuses="{path : 'statuses', templateShareable : 'true'}" 
         selected="{selected}"> 
         <attributes> 
          <ObjectAttribute 
           title="{title}" 
           text="{parts : ['text', 'type'], formatter : '.formatAttribute'}" 
           active="{active}"/> 
         </attributes> 
         <statuses> 
          <ObjectStatus 
           title="{title}" 
           text="{text}" 
           state="{state}" 
           icon="{icon}" 
           iconDensityAware="{iconDensityAware}" 
           textDirection="{textDirection}"/> 
         </statuses> 
        </UploadCollectionItem> 
       </items> 
       <parameters> 
        <UploadCollectionParameter name="Nbr" value="12" /> 
       </parameters> 
       <headerParameters> 
        <UploadCollectionParameter name="Nbr" value="12" /> 
       </headerParameters> 
      </UploadCollection> 

即使我在控制器中添加了參數,我沒有在控制檯中獲取請求負載。 我在beforeUploadStarts事件中使用了以下代碼。

onBeforeUploadStarts: function(oEvent) { 
    var oFileUploader = this.byId("UploadCollection"); 
      var sUrl = "some url"; 
      oFileUploader.setUploadUrl(sUrl); 
      var NbrParam = new sap.m.UploadCollectionParameter({ 
      name : "xyz", 
      value : 5 
      }); 

    oEvent.getParameters().addHeaderParameter(NbrParam); 
    oFileUploader.addParameter(NbrParam); 
}); 

回答

0

控制器

onFileUploadChange: function (oEvent) { 
       var oUploadCollection = oEvent.getSource(); 
       // Header Token 
       var oCustomerHeaderToken = new UploadCollectionParameter({ 
        name: "x-csrf-token", 
        value: "securityTokenFromModel" 
       }); 
       oUploadCollection.addHeaderParameter(oCustomerHeaderToken); 
      }, 

而且

onBeforeUploadStarts: function (oEvent) { 
       var oCustomerHeader = new sap.m.UploadCollectionParameter({ 
        name: "slug", 
        value: oEvent.getParameter("fileName") 
       }); 
       oEvent.getParameters().addHeaderParameter(oCustomerHeader); 
      }, 

我有同樣的問題添加這一點,但上述更正爲我工作。您將不會在控制檯中看到請求負載,但我的後端ABAP類正在接收文件內容。