nodejs ldapsj-client:问题保存thumbnailphoto



使用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

相关内容

  • 没有找到相关文章

最新更新