2017-03-28 6 views
2

HCPリポジトリにアクセスするためのJavaサーブレットを作成しました。上記のリポジトリにファイルをアップロードするためにsap.ui.unified.FileUploaderを使用しました。次のエラーが表示されます: 409競合、{"例外": "制約"、 "メッセージ": "必須プロパティがありません:cmis:name "}。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を使用しています:nameパラメータを中fileuploaderのパラメータ集約が時々それは動作し、時には上記のエラーが発生します。しかし、ドキュメントに用意されているhtml5形式は完全に動作します。だから、私はフォームとして動作するファイルアップロードを使用しています。 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(); 
     }); 

    }