首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过Java从OpenDJ ldap检索图片

通过Java从OpenDJ ldap检索图片
EN

Stack Overflow用户
提问于 2015-07-31 14:57:59
回答 4查看 1.8K关注 0票数 0

我已经通过OpenDJ控制面板向用户添加了一张图片,但我似乎无法检索该图片,因此我可以在网页上显示它。我找到了两个属性thumbnailPicture和,并尝试以以下方式访问它:

代码语言:javascript
复制
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中,所以返回为空),但我想要的是:

  • 图片保存位置的路径,但只是猜测OpenDJ实际上存储了这些信息?
  • 检索图片的可能性,但我不确定它在OpenDJ中保存了什么。现在的代码用于文件的路径(这就是为什么有一个转换到字符串的原因)。
EN

回答 4

Stack Overflow用户

发布于 2015-07-31 22:21:30

我认为您可能需要请求jpegPhoto属性吗?

票数 1
EN

Stack Overflow用户

发布于 2015-07-31 22:51:48

该目录不存储图像的路径。它存储图像。

您不必提到您得到了什么错误消息,或者您在这段代码中真正得到了多远,这使得无法给出一个明确的答案,但是照片属性作为字节数组而不是字符串返回,所以:

代码语言:javascript
复制
photo=(String)attrs.get("thumbnailPicture").get() ;

如果结果没有这样的属性,attrs.get("thumbnailPicture")将返回null,因此下面的.get()将抛出一个NullPointerException。如果它确实有这样一个属性,并且它有一个值,那么尝试将ClassCastException转换为String.,唯一可能的结论是,这一行代码没有被执行,所以photo保持在其先前的值,大概是null,这会导致您观察到的任何行为,尽管有很多请求,但您还没有告诉我们。

票数 1
EN

Stack Overflow用户

发布于 2016-08-09 06:00:43

对于用户图像,存在以下几个属性:

  1. 拇指指甲照片(特别是来自Active Directory的)
  2. jpegPhoto
  3. 和照片

因此,请使用以下代码:

代码语言:javascript
复制
photo=(String)attrs.get("thumbnailPhoto").get() ;

或,

代码语言:javascript
复制
photo=(String)attrs.get("jpegPhoto").get() ;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31749291

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档