Почему бы не использовать стандартную форму HTML так:
<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-коде переопределите метод processAction (обычно в классе, который расширяет GenericPortlet или, возможно, Liferay's MVCPortlet или JSPPortlet (для 5.2.3)), а затем вы можете получить сам файл:
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 поможет с этим.
~~ РЕДАКТИРОВАТЬ ~~~
Возможно и другое возможное решение:
HttpServletRequest req = FacesUtil.getRequest();
UploadPortletRequest uploadRequest = PortalUtil.getUploadPortletRequest(req);
Это я получил от: http://ironicprogrammer.blogspot.com/2010/03/file-upload-in-jsf2.html
Это какая-то помощь?