今天做LDAP发布图片,用binary属性存储。存储没有问题,但是读取时发现字段变成String形式并且内容是乱码,怎么转换都不能解决。

最后度了下发现

默认情况下Attribute#get()返回的属性值的格式都是字符串类型的,如果想指定某属性的格式为字节数组类型(比如某属性可能在活动目录中存储的是图片、Word等二进制文件,那么返回字节数组类型会特别合适),需要事先在查找的上下文环境中指定:默认情况下Attribute#get()返回的属性值的格式都是字符串类型的,如果想指定某属性的格式为字节数组类型(比如某属性可能在活动目录中存储的是图片、Word等二进制文件,那么返回字节数组类型会特别合适),需要事先在查找的上下文环境中指定:

增加如 env.put("java.naming.ldap.attributes.binary","aaaa");//aa是你的binary字段名。

Context cxt = new InitialLdapContext(env,null)

另外:

还有一个小问题,如果连接Ldap服务器的PROVIDER_URL中服务器与端口之外的路径含有中文,则需要事先使用java.net.URLEncoder进行编码,例如:

  1. String baseDN=URLEncoder.encode("ou=软件应用事业部,ou=OrgTree,dc=cattsoft,dc=com", "utf-8");
  2. env.put(Context.PROVIDER_URL, "ldap://192.168.123.8:389/"+baseDN);

参考:

http://zuiyanwangyue.iteye.com/blog/911649

LDAP binary字段读取的更多相关文章

  1. Odoo14 设置Binary字段默认值

    1 # Odoo 中的附件也就是Binary字段都是经过特殊处理的 2 # 首先是上传的时候会进行base64编码后再上传到服务器 3 # 服务器进行压缩存放在odoo文件仓库中 4 # 每个odoo ...

  2. delphi ftBlob二进制字段读取存储

    aStream:TMemoryStream; 保存到字段 qrypub.ParamByName('Data').LoadFromStream(aStream, ftBlob); 从字段读取到mem里 ...

  3. sqlserver text/ntext 字段读取

    sqlserver ntext 字段在读取时返回值 net.sourceforge.jtds.jdbc.ClobImpl@555bc78f 需要在连接数据库的URL后边加上";useLOBs ...

  4. MySQL数据库中tinyint类型字段读取数据为true和false

    今天遇到这么一个问题,公司最近在做一个活动,然后数据库需要建表,其中有个字段是关于奖励发放的状态的字段,结果读取出来的值为true 一.解决读取数据为true/false的问题 场景: 字段:stat ...

  5. MySQL数据库中tinyint类型字段读取数据为true和false (MySQL的boolean和tinyint(1))

    数据库一个表中有一个tinyint类型的字段,值为0或者1,如果取出来的话,0会变成false,1会变成true. MySQL保存boolean值时用1代表TRUE,0代表FALSE.boolean在 ...

  6. EF-按字段读取

    /// <summary> /// 直接获取特定一个或者多个字段的值 /// 多个字段需要声明Model /// var s= testDal.GetScalar<dynamic&g ...

  7. 从blob字段读取图片 在浏览器显示

    public byte[] GetProImg(string JID) { byte[] Buffer = null; using (OracleConnection conn = new Oracl ...

  8. 分块读取Blob字段数据(Oracle)

    试过了MSSQL的分块读取Blob字段,又尝试在Oracle下完成,发现还是可行的. 首先建立一个存储过程: create or replace procedure PRO_GET_BLOB(     ...

  9. ADO.NET笔记——读取二进制大对象(BLOB)

    相关知识: 在SQL Server中,一般情况下,每行数据的总长度不能超过8K字节.因此,下列数据类型的长度,也不能超过8K字节:binary,char(),nchar(),varchar(),nva ...

随机推荐

  1. Codeforces Round #381 (Div. 2)C. Alyona and mex(思维)

    C. Alyona and mex Problem Description: Alyona's mother wants to present an array of n non-negative i ...

  2. phpstrom 10 激活

    随着 JetBrains 新版本的发布,注册机已然不行了.然而,道高一尺,魔高一丈.IntelliJ IDEA开源社区 提供了如下通用激活方法:注册时选择License server填写http:// ...

  3. mount什么意思

    root@Home-Cloud:/mnt# dfFilesystem           1K-blocks      Used Available Use% Mounted on/dev/root  ...

  4. 在virtualbox(win7)下使用USB摄像头

    解决方法: 去https://www.virtualbox.org/wiki/Downloads下载VirtualBox 4.3.8 Oracle VM VirtualBox Extension Pa ...

  5. asp.net 一次性提交大量数据,服务器会报错,要在 web.config 中设置一下

    web.config <?xml version="1.0" encoding="utf-8"?> <!-- 有关如何配置 ASP.NET 应 ...

  6. Valgrind 发现程序的内存问题

    参考 : [1]. 应用 Valgrind 发现 Linux 程序的内存问题. http://www.ibm.com/developerworks/cn/linux/l-cn-valgrind/ [2 ...

  7. nodejs在同一台服务器上部署并同时运行两个或以上服务端时,一个服务用户登录后会挤掉另一个用户的问题

    问题描述:一台服务器,部署了两个或以上不同的Web服务,服务A的用户在登陆后,服务B的用户也登陆,此时服务A的用户在点击页面时,会返回登陆页面. 问题根源:浏览器保存的session相同,即cooki ...

  8. Visual C++2012中CMFCPropertySheet的用法

    看到了一个例子(NewControls),该例子中使用了按钮图片等特效(哈哈,个人觉得挺高端),但是仔细看它的工程,没有xxxDlg.cpp就觉得奇诡了,难道不是基于对话框完成的?最终查阅居然是这样的 ...

  9. appstore不能登陆

    Happened same with me. This is happening because the App Store is looking for a working connection o ...

  10. click 事件 arguments.callee 每次点击自动* 2

    今天在测试JQUERY(版本3.0,向下兼容3.0)时发现一个很特别的现象,代码如下: $($('button').get(4)).click(function(){ alert($(this).ht ...