2014-07-22 48 views
0

我正在處理XPage中的應用程序,並且需要在服務器端進行文件上載驗證。 我讀過文件上傳只適用於客戶端,所以我試圖驗證另一個存儲文件名稱附加的字段。我是在文件上傳的更改事件上做的。當我刪除附加文件 - 文件下載控制上沒有更改事件時,會出現問題...有什麼建議嗎?或者也許有不同的方式 謝謝XPage上的文件驗證

回答

3

未保存的附件列表可以從數據源的getAttachmentList("RTFieldName")方法訪問。

我建議使用一個隱藏的輸入和自定義驗證有更多的控制,如:

<xp:message 
    id="message1" 
    for="inputHidden1"></xp:message> 
<xp:br></xp:br> 
<xp:inputHidden 
    id="inputHidden1" 
    value="arbitrary"> 
    <xp:this.validators> 
     <xp:customValidator> 
      <xp:this.validate><![CDATA[{javascript: 
    // RTField the name of the rich text field that holds attachments 
    if(document1.getAttachmentList("RTField").size()==0) { 
     // You might want to do more checks here. 
     var inputHidden1 = getComponent("inputHidden1"); 
     inputHidden1.setValid(false); 
     return "You have to upload a file!" // your error message 
}}]]></xp:this.validate> 
     </xp:customValidator> 
    </xp:this.validators> 
</xp:inputHidden> 

記住,value="arbitrary"是很重要的。空字段不會觸發自定義驗證器。