2016-09-29 2 views
3

파일을 받고이를 문서에 첨부 할 수있는 서비스를 만들고 있습니다.XPages에서 Java bean 파일 받기

파일을 제출하는 데 사용되는 HTML 양식을 만들었습니다 (아래 예 참조). 양식은 아래 트리거 자바 빈을 제출하면

TEST 양식

<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> 

은 예입니다.

자바 빈 나는의 InputStream가이 서비스에 제출 파일을 초기화하는 방법을 모르는 그러나

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(); 

     ... 

. 아무도 그 방법을 제안 할 수 있습니까?

감사합니다.

+1

내 fileVault 프로젝트에는 XAgent를 통해 파일을 가져 오는 예가 있습니다. 그런 다음 Java 코드를 사용하여 조작합니다. https://bitbucket.org/leedy/filevault 또한 NotesIn9 스크린 캐스트에 대한 기본 예제를 작성했습니다. http://www.notesin9.com/2016/08/25/notesin9-194-upload-files-with-plupload/ 아마 도움이 될 것입니다. –

+0

@ David : 너무 겸손해서는 안됩니다. 귀하의 진술 내용은 받아 들일 만 한 답신이되어야합니다. – stwissel

+0

@DavidLeedy, 의견을 보내 주셔서 감사합니다. 나는 거기에 자바 콩을 찾을 수 없다면, 만약 당신이 그것을 찾도록 도와 주시겠습니까? –

답변

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 웹 페이지에서도 작동합니다. ;-) –