通过 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����R55
5��$��)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.'"/>';
我将联系人照片存储在 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����R55
5��$��)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.'"/>';