2016-09-29 26 views
3

我正在創建可以接收文件並將它們附加到文檔的服務。在XPages中接收Java bean中的文件

我已經創建了用於提交文件的HTML表單(下面的例子)。

測試窗體

<html> 
<body> 
    <h1>Test-form to upload files (v.1.0.0) </h1> 

    <form action="/file.xsp/upload" method="post" enctype="multipart/form-data"> 
     <p> 
     Select a file : <input type="file" name="file" size="50" /> 
     </p> 

     <input type="submit" value="Upload It" /> 
    </form> 
</body> 
</html> 

一旦提交表單的Java bean被觸發及以下的例子。

JAVA BEAN

public class TestFile extends CustomServiceBean { 

    @Override 
    public void renderService(CustomService service, RestServiceEngine engine) throws ServiceException { 
     print ("START: Uploading of file..."); 

     HttpServletResponse res = engine.getHttpResponse(); 
     HttpServletRequest req = engine.getHttpRequest(); 

     ... 

但是我不知道如何初始化的InputStream文件提交到服務。任何人都可以建議(或舉例)如何做到這一點?

謝謝!

+1

在我的fileVault項目中,我有一個通過XAgent獲取文件的示例,我相信。然後我使用Java代碼來操縱它。 https://bitbucket.org/leedy/filevault我還在我的NotesIn9截屏上做了一個更基本的例子。 http://www.notesin9.com/2016/08/25/notesin9-194-upload-files-with-plupload/也許這會有所幫助。 –

+0

@大衛:不要那麼謙虛,只能評論。您的輸入保證是一個可接受的答覆 – stwissel

+0

@DavidLeedy,感謝您的評論。我在那裏找不到一個java bean,如果它在那裏,請你幫我找到它嗎? –

回答

2

我不確定它適用於將文件提交給bean,但我使用類似於以下代碼的內容來驗證上傳的文件屬性(如大小)。

在我的情況下,POST是由XPage製作的,可能不是你的情況,所以也許它不適用。

HttpServletRequest request= engine.getHttpRequest(); 

@SuppressWarnings("unchecked") 
Map<String,Object> params=request.getParameterMap(); 

for (Entry<String, Object> tmpEntry : params.entrySet()) { 
    if (tmpEntry.getValue() instanceof UploadedFile) { 
     UploadedFile myFile=(UploadedFile)tmpEntry.getValue(); 
     //Do something with the file 
    } 
} 
+0

這對我來說很好。 我無法接收文件處理程序,因爲文件已在Domino上發佈,因此請求正文爲空。 我不知道:)。 –

+0

很高興知道這將適用於非XPages的html網頁。 ;-) –