Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP ldap_modify更新Active Directory中的照片_Php_Active Directory_Ldap - Fatal编程技术网

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

如何使用PHP ldap_modify更新Active Directory中的照片,php,active-directory,ldap,Php,Active Directory,Ldap,我正在尝试使用PHP和ldap更新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($phot

我正在尝试使用PHP和ldap更新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;
}

您确定要使用
照片
属性吗?默认情况下,Outlook等会查看
thumbnailPhoto
属性,该属性只是文件的字节数组(不是base64编码的)。大概是这样的:

$changes['thumbnailPhoto'] = $data;

谢谢!就这些。你太棒了。
<?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;
}