簡體   English   中英

如何使用 PHP ldap_modify 更新 Active Directory 中的照片

[英]How to update photo in Active Directory using PHP ldap_modify

我正在嘗試使用 PHP 和 ldap_modify 在我們的 Windows Active Directory 中更新一堆用戶照片。 我沒有收到任何錯誤,但照片也沒有更新。 有什么明顯的我做錯了嗎?

<?php
//previously have connected to AD and have $conn resource. I also have correct $dn.
$photofile='/var/www/temp/mynewphoto.jpg';
$data=file_get_contents($photofile);
$changes['photo']='data:image/jpeg;base64,'.base64_encode($data);
if(!ldap_modify($conn, $dn, $changes)){
    $enum=ldap_errno($conn);
    $msg=ldap_err2str( $enum );
    echo "Photo change Failed for {$dn}. {$msg}".'<br />'.PHP_EOL.printValue($ldapInfo);
}
else{               
    echo "Photo Updated for  : {$dn} : {$rec['dn']}<br />".PHP_EOL;
    $cnt+=1;
}
<?php
//previously have connected to AD and have $conn resource. I also have correct $dn.
$photofile='/var/www/temp/mynewphoto.jpg';
$data=file_get_contents($photofile);
$changes= ['thumbnailPhoto' => [$data]];
if(!ldap_modify($conn, $dn, $changes)){
    $enum=ldap_errno($conn);
    $msg=ldap_err2str( $enum );
    echo "Photo change Failed for {$dn}. {$msg}".'<br />'.PHP_EOL.printValue($ldapInfo);
}
else{               
    echo "Photo Updated for  : {$dn} : {$rec['dn']}<br />".PHP_EOL;
    $cnt+=1;
}

您確定要photo屬性嗎? 默認情況下,Outlook 等查看thumbnailPhoto屬性,它只是文件的字節數組(不是base64 編碼的)。 像這樣的東西:

$changes['thumbnailPhoto'] = $data;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM