2012-12-17 4 views
2

업로드 된 파일의 이름을 표시 할 수 있도록 primefaces, richfaces와 같은 jar 파일을 추가하지 않고 파일 ajax를 업로드해야합니다.어쨌든 JSF에서 ajax로 파일을 업로드 하시겠습니까?

내 양식은 아약스로 메소드를 호출해야하는 업로드 버튼이있는 대화 상자 안에 있습니다. 내 코드는 ...

<h:commandButton value="Upload" action="#{bean.uploadMethod}"> 
<f:ajax listener="#{bean.abcMethod}" event="click"/> 
</h:commandButton> 

이 같은이며, 또한 난 그냥, 찾아 보여 일부 목록에 파일의 이름을 유지 할 수 있는지 알고 싶습니다 그리고 내 전체 양식을 제출할 수 있습니다. 이 제출은 내가 목록에 이름을 표시 한 파일을 업로드해야합니다. 가능한가?

+0

[곧 JSF 2.2에 출시 될 예정] (http://java.net/jira/secure/IssueNavigator.jspa?mode=hide&requestId=11471). 우리는 참을성있게 기다리고 있습니다 – kolossus

답변

1

나는 또한 AJAX를 통해 파일 (이미지)을 업로드하는 데 어려움을 겪고 있습니다. 몇 가지 방법과 Google 또는 Dropbox와 같은 회사에서 어떻게 구현했는지 살펴 보았습니다. 파일을 제출

  • 사용 iframe :

    은 지금까지 나는 두 가지 방법을 발견했다. 이것은 실제로 AJAX가 아니기 때문에 대부분의 브라우저에서 작동합니다. 그러나 JSF에서 아직 구현 (PrimeFaces 이외)을 보지 못했습니다.
  • 파일 클라이언트 측을 base64로 인코딩하고, AJAX를 통해 전송하고 서버 측에서 디코딩합니다. 그러나 나는 JSF에서 구현을 보지 못했고 실제로 뭔가를 요리하기 위해 지난 시간을 가지지 못했다. 짧은 솔루션을 원하는 경우

당신은 , (아마도 )를 사용할 수 있습니다. 하지만 당신은 이미 그 중 하나를 사용하고 싶지 않다고 말했다.

어쩌면 누군가 진짜 솔루션을 게시하기에 충분히 좋을지 모르지만 아이디어 나 두 가지를 던질 것으로 생각됩니다. ;-)

+0

당신이 관심이 있다면 내 대답을보십시오. –

0

Primefaces는 완전히 AJAX 가능 파일 업로드 JSF 구성 요소 인 FileUpload 구성 요소를 제공합니다.

Here is the showcase example

나는 그것이 어떻게 작동하는지 확인 완료하지 오전하지만 난 그게 HTML5를 통해 기능을 현대적인 브라우저를 사용 믿습니다. 물론이 기능을 사용하려면 클라이언트가 HTML5 마크 업을 이해할 수있는 최신 브라우저 여야합니다.

+0

IIRC 구성 요소는 최신 브라우저에서는 HTML5를 사용하지만 이전 브라우저에서는 iframe 메소드로 대체 할 수 있습니다. – siebz0r

+0

@ siebz0r HTML5와 호환되지 않는 브라우저의 경우 '단순'모드로 설정할 수 있지만 마크 업 설정입니다. 나는이 시나리오에서 iframe을 사용한다고 생각하지 않는다. AJAX가 아닌 다른 브라우저 표준 파일 업로드 컨트롤을 사용할 수 있다고 생각한다. –

관련 문제