2012-12-13 5 views
2

JSF로 파일을 업로드하고 싶습니다. 일시 중지 후 자발적으로 업로드를 재개 할 수 있기를 원합니다. 크기는 약 500MB입니다.JSF 재개 가능 파일 업로드

깔끔한 FileUpload-Tag가있는 PrimeFaces와 함께 작업하고 있지만 업로드를 일시 중지/다시 시작할 수 없습니다.

나는 이것을 연구했다. 가장 일반적인 대답은 "FTP 클라이언트 사용"입니다. 다른 것은 Java-Applets 또는 Flash였습니다.

현재 Firefox/Chrome 및 IE8에서 작동해야합니다.

답변

2

HTML <input type="file"> 요소를 통해 파일 업로드를 재개 할 수 없습니다. 인코딩을 지원하는 인코딩은 multipart/form-data입니다. 더 나아가, 그것을 지원하는 표준 형식 인코딩 스펙이 없습니다. 기본적으로 사용자 지정 HTTP 요청 형식을 만들어야합니다.

자바에서는 가장 좋은 방법은 Swing JFileChooser을 사용하여 파일을 선택하고 URLConnection을 사용하여 HTTP를 통해 서버로 보내는 애플릿 또는 Webstart 응용 프로그램을 작성하는 것입니다. 서버 측에서는 사용자 정의 요청 형식을 이해하고 이에 따라 부분 업로드를 처리하는 사용자 정의 Servlet이 필요합니다.

이 모든 기능을 갖춘 타사 애플릿이 있습니다 : JumpLoader. 홈페이지는 현재 불행히도 내려 가고 있습니다 (Google 캐시를 사용해 볼 수도 있음). 요점은 특정 HTTP 요청 매개 변수를 multipart/form-data 업로드 요청과 함께 보내 서버 측에 부분 업로드인지 여부를 알려주고 어떤 색인에서 시작해야 하는지를 알려주므로 서블릿이 함께 조각을 붙일 수 있습니다.

그런 다음이 모든 것을 JSF와 통합하려면 애플릿이 JSF 애플리케이션과 동일한 HTTP 세션을 공유하도록 애플릿이 URL 경로 조각으로 세션 ID를 전달하도록하는 것이 가장 좋습니다. 이렇게하면 업로드 서블릿이 세션 범위의 JSF 관리 Bean에 액세스 할 수 있고 JSF 애플리케이션이 HTTP 세션의 서블릿 특정 변수를 폴링 할 수 있습니다.

관련 문제