2013-04-22 49 views
0

我試圖將配置文件圖像添加到Liferay用戶使用jsf portlet與primefaces p:fileUpload組件。現在使用jsf + primefaces組件將配置文件圖像添加到liferay用戶

,因爲我們知道輪廓圖像添加到用戶,我們使用

UserLocalServiceUtil.updatePortrait(user, bytes_file); 

其中user是用戶ID和bytes_file是字節

的陣列來獲得bytes_file的Liferay使用這種方式的價值。

UploadPortletRequest uploadRequest = PortalUtil.getUploadPortletRequest(actionRequest); 

File file=uploadRequest.getFile(fileName); 

i.e byte[] bytes=FileUtil.getBytes(file); 

但正如我使用JSF的Portlet,無法得到的ActionRequest對象,所以我怎麼能得到的ActionRequest對象?

I have also tried to get actionrequest using this ways. 

FacesContext facesContext = FacesContext.getCurrentInstance(); 
ExternalContext externalContext = facesContext.getExternalContext(); 
ActionRequest actionRequest = (ActionRequest) externalContext.getRequest(); 

LiferayFacesContext liferayFacesContext = LiferayFacesContext.getInstance(); 
ActionRequest actionRequest = (ActionRequest) liferayFacesContext.getPortletRequest(); 

,但它給我的錯誤作爲com.liferay.portlet.ResourceRequestImpl 不能轉換到javax.portlet.ActionRequest

我已經試過阿洛斯這樣......

step 1. byte[] bytes_file = event.getFile().getFileName().getBytes(); 
step 2. UserLocalServiceUtil.updatePortrait(user, by_new); 

,但它給我的異常,因爲com.liferay.portal.UserPortraitTypeException這意味着我們得到這個異常,當

renderedImage is null as shown below. 
ImageBag imageBag = ImageToolUtil.read(bytes); 

      RenderedImage renderedImage = imageBag.getRenderedImage(); 

      if (renderedImage == null) { 
       throw new UserPortraitTypeException(); 
      } 

所以我怎麼能得到正確的ActionRequest使用Liferay的方式來 圖像添加到用戶?或者我如何傳遞正確的字節值的上傳 圖像文件添加圖像給用戶?

或者是否有任何其他方式在liferay中添加用戶配置文件圖像?

回答

0

在Liferay Faces論壇中查看我的answer

相關問題