2016-11-10 18 views
0

我有一個需求,我需要在使用PUMA API從LDAP進行搜索之後顯示用戶的詳細信息。在Websphere Portal中顯示來自LDAP的jpegPhoto屬性

我有麻煩顯示用戶的jpegPhoto。

下面是我在做什麼: 首先,我通過詢問用戶: PumaLocator.findUsersByAttribute(UID,用戶);

之後,我們得到一個用戶列表對象。 對於每個用戶,我們獲取所有屬於地圖形式的屬性。

我得到以下值在檢索jpegPhoto:

map.get( 「jpegPhoto」) - >[B @ 7a2f8a54

看來,彪馬API返回二進制字符串。有誰知道如何在portlet中顯示它?

任何幫助將不勝感激。謝謝

+0

這是調用'byte []。toString()'的結果。 – EJP

回答

0

我認爲它更可能這是不是一個字符串數組byte[]

你或許可以使用Base64編碼此二進制成一個編碼字符串,並用它在HTML圖像標記。

byte[] photoBytes = (byte[]) map.get("jpegPhoto"); 
String encodedPhoto = org.apache.commons.codec.binary.Base64.encodeBase64(photoBytes); 

然後稍後,也許在JSP(示例假定在名爲encodedPhoto範圍JSTL變量):

<img src="data:image/jpeg;base64,${encodedPhoto}"/> 
0

這樣做的一種方法是通過門戶服務servlet來訪問圖像,而不是使用您自己的servlet:/wps/um/secure/users/profiles/[oid]/jpegPhoto,其中您將[oid]替換爲用戶的ObjectID。 /wps/um/secure/currentuser/profile/jpegPhoto

0

門戶是給你的數據作爲字節數組:可使用IdentificationMgr.getIdentification().serialize(user.getObjectID())

可以訪問使用當前用戶的照片來獲得該ID的字符串。它永遠不會讓你成爲URL。 您可以編寫一個將此字節數組寫入輸出流的servlet。 使用該servlet URL作爲標籤的src。它將開始在瀏覽器上呈現。

僅供參考,不能打印字節數組到瀏覽器,並期望它當作圖像。 圖像或任何其他文件必須作爲資源而不是內容。

相關問題