:
<form action="your_action_goes_here" method="post" enctype="multipart/form-data">
<input type="file" name="file" id="file" />
<input type="submit" name="submit" value="Submit" />
</form>
を次に、あなたのJavaコードで(通常はGenericPortletまたは多分LiferayのMVCPortletまたはJSPPortlet(5.2.3用)を拡張したクラスで)processActionメソッドをオーバーライドします
public void processAction(ActionRequest actionRequest, ActionResponse actionResponse) {
UploadPortletRequest uploadRequest = PortalUtil.getUploadPortletRequest(actionRequest);
File file = (File) uploadRequest.getFile("file");
// Do something with your file here
}
ジョブが完了しました。 :)これはスケルトンコードだけであり、例外処理が必要になりますが、IDEがその処理に役立ちます。
~~ EDIT ~~~
他の可能な解決策かもしれない使用する:
HttpServletRequest req = FacesUtil.getRequest();
UploadPortletRequest uploadRequest = PortalUtil.getUploadPortletRequest(req);
Iから得たこの:http://ironicprogrammer.blogspot.com/2010/03/file-upload-in-jsf2.html
は、任意のヘルプですか?
はい、私も試みました(http://www.portalteam.net/blogs/using-file-upload-in-liferay-jsf-portlet)org.portletfaces.bridge.GenericFacesPortletをオーバーライドします。ここでの問題は、processActionが呼び出されなかったことです(processEvent(EventRequest eventRequest、EventResponse eventResponse)のみ)。したがって、Fileを取得できません。 PortalUtil.getUploadPortelRequestを別の場所で呼び出そうとしましたが、ファイルを取得できませんでした... – katis
私は別の可能な解決策を見つけました。それがうまくいくかどうかわかりませんが、投稿して見たいと思っていました! :) – Jonny