我尝试使用ldapsj-client模块将thumbnailPhoto保存到文件中
const auth = async () => {
const client = new LdapClient({ url: 'myaddomain' })
await client.bind('someemail@domain.com.br', 'passwaord')
const opts = {
filter: `(sAMAccountName=credential)`,
scope: "sub"
}
const s = await client.search(myBaseDN, opts)
console.log('thumbnailPhoto', s[0].thumbnailPhoto)
}
log()输出类似于“JFIF `` C...”的内容。
我不知道如何将这个二进制文件保存到文件中。当我尝试几种方法时,正如X11E1F1X所解释的,都不起作用。似乎AD中的数据不是相同的“格式”。
我试着把它转换成缓冲区然后转换成base64
const buffer = Buffer.from(s[0].thumbnailPhoto, 'binary')
var src = "data:image/png;base64," + Buffer.from(s[0].thumbnailPhoto).toString('base64')
但输出不是有效的base64。
1条答案
按热度按时间qxsslcnc1#
我在这里真的有点晚了,但是如果您现在使用的是ldapjs包(它似乎是您所使用的包的当前维护版本),则可以使用
.raw
属性访问缓冲区。使用您的代码:
现在可以转换为base64。
我想你可能不再从事这个项目了,但希望这能帮助像我这样的另一个搜索者:)
注意:查看此pr https://github.com/ldapjs/node-ldapjs/pull/107