我已经通过OpenDJ控制面板向用户添加了一张图片,但我似乎无法检索该图片,因此我可以在网页上显示它。我找到了两个属性thumbnailPicture和,并尝试以以下方式访问它:
NamingEnumeration<?> namingEnum = ctx.search(baseFilter, "(uid="+username+")", searchControls);
if (namingEnum.hasMore ()){
SearchResult result = (SearchResult) namingEnum.next ();
Attributes attrs = result.getAttributes ();
photo=(String)attrs.get("thumbnailPicture").get() ;
}使用代码没有什么问题,因为我可以检索电子邮件adres,例如,当我更改photo=(String)attrs.get("thumbnailPicture").get() ;时
至
photo=(String)attrs.get("mail").get() ;
我注意到,当通过OpenDJ控制面板添加图片时,它是通过浏览按钮进行的,所以我猜路径应该存储在某个地方?
我没有收到任何错误消息(我想是因为属性thumbnailPicture和没有填写在OpenDJ中,所以返回为空),但我想要的是:
发布于 2015-07-31 22:21:30
我认为您可能需要请求jpegPhoto属性吗?
发布于 2015-07-31 22:51:48
该目录不存储图像的路径。它存储图像。
您不必提到您得到了什么错误消息,或者您在这段代码中真正得到了多远,这使得无法给出一个明确的答案,但是照片属性作为字节数组而不是字符串返回,所以:
photo=(String)attrs.get("thumbnailPicture").get() ;如果结果没有这样的属性,attrs.get("thumbnailPicture")将返回null,因此下面的.get()将抛出一个NullPointerException。如果它确实有这样一个属性,并且它有一个值,那么尝试将ClassCastException转换为String.,唯一可能的结论是,这一行代码没有被执行,所以photo保持在其先前的值,大概是null,这会导致您观察到的任何行为,尽管有很多请求,但您还没有告诉我们。
发布于 2016-08-09 06:00:43
对于用户图像,存在以下几个属性:
因此,请使用以下代码:
photo=(String)attrs.get("thumbnailPhoto").get() ;或,
photo=(String)attrs.get("jpegPhoto").get() ;https://stackoverflow.com/questions/31749291
复制相似问题