使用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)
}
console.log((输出类似'���������������������财产> 的东西。.c ...'
我无法弄清楚如何将此二进制保存到文件中。如这里所述,当我尝试几种方法时,无效。看来AD的数据不具有相同的"格式"。
我尝试将其转换为缓冲区,然后将其转换为base64
const buffer = Buffer.from(s[0].thumbnailPhoto, 'binary')
var src = "data:image/png;base64," + Buffer.from(s[0].thumbnailPhoto).toString('base64')
,但输出不是有效的base64。
我在这里的游戏很晚,但是如果您现在使用LDAPJS软件包(这似乎是当前维护的版本的版本(,则可以访问缓冲区使用CC_2 Prop。
使用您的代码:
const s = await client.search(myBaseDN, opts)
console.log('thumbnailPhoto', s[0].raw.thumbnailPhoto)
现在可以转换为base64。
Buffer.from(s[0].raw.thumbnailPhoto, 'binary').toString('base64')
// <img src="data:image/*;base64,<base64 here>">
我想您可能不再在这个项目上工作,但是希望这会帮助像我这样的另一个搜索者:(
注意:查看此pr https://github.com/ldapjs/node-ldapjs/pull/107