通过 PHP 从 LDAP 查看 jpeg

Viewing jpeg from LDAP via PHP

我将联系人照片存储在 openLDAP 中。一切正常,但我无法使用 PHP.

获得 base64 格式的 jpegPhoto(如 ldapsearch 输出它)

ldapsearch -x 的一部分:

*# 1486, People, domain.name
dn: uidNumber=0000,ou=People,dc=domain,dc=name
objectClass: someUnit
uidNumber: 0000
gidNumber: 0000
loginShell: /bin/false
cn:: Anon
roomNumber:: 000
telephoneNumber: 00-00-00 00-00
departmentNumber:: 000
jpegPhoto:: /9j/4AAQSkZJRgABAQEAtAC0AAD/4QzsRXhpZgAASUkqAAgAAAAIAA4BAgAgAAAAbg
 AAAA8BAgAGAAAAjgAAABABAgAPAAAAlAAAADIBAgAUAAAApAAAABMCAwABAAAAAgCaOwEQAwABAAA
 A4BAAAAIQAwABAAAAqAwAAGmHBAABAAAAuAAAAAAAAAAgICAgICAgICAgICAgICAgICAgICAgICAg
 ICAgICAgAENhbm9uAENhbm9uIElYVVMgMTMwAAAyMDExOjAyOjE3IDE0OjU3OjE5AB8AmoIFAAEAA
 AAyAgAAnYIFAAEAAAA6AgAAJ4gDAAEAAACQAc3/AJAHAAQAAAAwMjIxA5ACABQAAABCAgAABJACAB
 QAAABWAgAAAZEHAAQAAAABAgMAApEFAAEAAABqAgAAAZIKAAEAAAByAgAAApIFAAEAAAB6AgAABJI
 KAAEAAACCAgAABZIFAAEAAACKAgAAB5IDAAEAAAAFAEH/CZIDAAEAAAAYAED/CpIFAAEAAACSAgAA
 .............................................................................

PHP数据输出代码:

$ds = ldap_connect('localhost', 389)
          or die("Невозможно соединиться с $ldaphost");
$justthese = array("cn", "roomNumber", "telephoneNumber","departmentNumber","mail","jpegPhoto");
$sr=ldap_search($ds, $dn, $filter, $justthese);
$entry = ldap_get_entries($ds, $sr);
$i=0;

//Formation of the table header

..............................................................

do {

    $matches = "";

// Output "cn", "roomNumber", "telephoneNumber","departmentNumber"

    echo "<td style=\"border-right:1px solid lightgray; \" align=\"center\">".$entry[$i]["departmentnumber"][0]."</td>";
    echo "<td style=\"padding-left:20px;\"><a href=\"mailto:".$entry[$i]["mail"][0]."\">".$entry[$i]["mail"][0]."</a></td>";
    echo "</tr>";

    echo $entry[$i]["jpegphoto"][0];


    $i++;
} while ($i<count($entry)-1);
echo "</table>";

ldap_close($ds);

我想让 base64 $entry[$i]["jpegphoto"][0] 等于:“/9j/4AAQSkZJRgABAQEAtAC0AAD/4QzsRXhpZgAASUkqAAgAAAAA4BAgAAAAAbgAAAA8BAgAAAAAjgAAABABAgAPAAAAlAAAADIBAgAUAAAApAAAABMCAwABAAAAQ=16AOwE”[

但我的结果是:
"����JFIF������ExifII* n��2��;��i�� CanonCanon IXUS 1302011:02:16 10:51:57��2��:'����0221��B ��V��j�� r��z������ Y ��|��* ������0100����������r^��#&��$'&��! ��! ������KH2 2011:02:16 10:51:572011:02:16 10:51:57� � =�04���"����b , �L�&1�Zbb E� " ��#��' ��(��-.��/����@��� N������ ���������=��D�z����� ��IMG:IXUS 130 JPEG固件版本1.00����Q����������? (p1p��@1p g ����,��F�F����Fz��?)EW����@p����@>������������������ ����������...... ���� ��2_b ��@��R555����R555��$��)5: F&5( ��������Xh. "" $') )'$ #(,--,( .//. .//.% (,--,(# $')) '$ "" ����pc�b����q��������"@u����II*��A�@p1������C ��C ���� "�� ����}!1AQa"q2���#B��R��br� "

是对的,我正在获取图像的原始字节。 base64_encode-ing 输出有效:

$lil = base64_encode($entry[$i]["jpegphoto"][0]);
echo '<img src="data:image/jpeg;base64,'.$lil.'"/>';