2017-03-28 13 views
2

HCP 저장소에 액세스하기 위해 Java Servlet을 만들었습니다. 위의 저장소에 파일을 업로드하기 위해 sap.ui.unified.FileUploader를 사용했습니다. 다음 오류가 발생합니다 : 409 충돌, { "예외": "제약", "메시지": "필수 속성 누락 : cmis : 이름 "}.SAP Hana Cloud Platform 문서 서비스에서 파일 업로드 문제

나는 fileuploader를 사용하여 양식으로 데이터를 제출하려면 다음 코드를 사용했습니다 :

<upload:FileUploader id="fileUploader" uplaodStart="handleUploadStart" uploadProgress="handleUploadProgress" uploadComplete="handleUploadComplete"> 
        <upload:parameters> 
         <upload:FileUploaderParameter name="cmisaction" value="createDocument"></upload:FileUploaderParameter> 
         <upload:FileUploaderParameter name="propertyId[0]" value="cmis:objectTypeId"></upload:FileUploaderParameter> 
         <upload:FileUploaderParameter name="propertyValue[0]" value="cmis:document"></upload:FileUploaderParameter> 
         <upload:FileUploaderParameter name="propertyId[1]" value="cmis:name"></upload:FileUploaderParameter> 
         <upload:FileUploaderParameter name="propertyValue[1]" id="cmisname"></upload:FileUploaderParameter> 
        </upload:parameters> 
       </upload:FileUploader> 
       <Button text="Upload File" press="handleUploadPress"/> 

다음과 같이 컨트롤러의 코드는 다음과 같습니다

handleUploadPress: function(oEvent) { 
     debugger; 
     var oFileUploader = this.getView().byId("fileUploader"); 
     var repoid="94hjinnfsai8opwroiwlnnsa"; 
     var file = jQuery.sap.domById(oFileUploader.getId()+"-fu").files[0]; 
     this.getView().byId("cmisname").setValue(file.name); 
     oFileUploader.setUploadUrl("/destinations/destinationName/json/"+repoid+"/root"); 
     oFileUploader.setFileType("multipart/form-data"); 
     oFileUploader.upload(); 
    } 

을 나는 CMIS를 사용하고 있습니다 : 이름 매개 변수에 fileuploader의 매개 변수 집계하지만 때로는 작동하고 때로는 위의 오류를 제공합니다. 그러나 문서에 제공된 html5 양식은 완벽하게 작동합니다. 그래서 필자는 fileuploader를 폼으로 사용했습니다. html5 코드는 다음과 같습니다.

<form action="/destinations/destinationName/json/c4hjinnfsai8opwroiwlnnsa/root" 
    enctype="multipart/form-data" method="post"> 
    <p> 
     Please specify a file:<br> <input type="file" id="filename" 
      onchange="setFilename()" name="datafile" size="40"> 
    </p> 
    <div> 
     <input type="submit" value="Upload"> 
      <input name="cmisaction" type="hidden" value="createDocument"/> 
      <input name="propertyId[0]" type="hidden" value="cmis:objectTypeId"/> 
      <input name="propertyValue[0]" type="hidden" value="cmis:document"/> 
      <input name="propertyId[1]" type="hidden" value="cmis:name"/> 
      <input name="propertyValue[1]" type="hidden" id="cmisname"/> 
    </div> 
</form> 

도와주세요.

답변

0

아주 늦게 답변하지만 다른 사람들에게 도움이 될 수 있습니다. 지연된 전화를 사용하여이 문제를 해결할 수 있습니다. 값을 매개 변수로 설정 한 후 즉시 업로드하지 마십시오. 내 코드는 다음과 같습니다.

handleUploadPress: function(oEvent) { 
     var oFileUploader = this.getView().byId("fileUploader"); 
     if (!oFileUploader.getValue()) { 
      MessageToast.show("Choose a file first"); 
      return; 
     } 
     var cmisname = oFileUploader.getValue(); 
     oFileUploader.addParameter(new sap.ui.unified.FileUploaderParameter({ 
      name: "propertyValue[1]", 
      value: cmisname 
     })); 
     jQuery.sap.delayedCall(100, this, function() { 
      oFileUploader.upload(); 
     }); 

    }