10

Active Directory から全員の名前、メール アドレス、電話番号を表示するシステムをセットアップしましたが、「thumbailPhoto」を機能させることができません。

インターネットで検索しましたが、これが可能かどうか、または少なくとも Active Directory から返される形式を見つけることができませんでした。

私は現在adldapクラスを使用しているので、これを使用できれば理想的です。

前もって感謝します。

編集:

私は、thumbnailPhoto 属性のデータを取得できます。それらをブラウザーに直接ダンプすると、次のような結果が得られます。

ÿØÿàJFIFððÿá PExifII*bh~†(2Ži‡¢XCanonCanon EOS 5D Mark IIIðð2013:05:19 17:35:31š‚à‚è"ˆ'ˆ 0230ð' ' ' ('0'8' '@''11'' . ",#(7),01444'9=82<.342ÿÛC 2!!22222222222222222222222222222222222222222222222222ÿÀ–d"ÿÄ ÿĵ}!1AQa"q2'¡#B±ÁRÑð$3br‚ %&'() 456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ ˆ‰Š'””•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºâÃÄÅÆÇÈÉÊÒÓÔÕÖ×ØÙÚáâãäåæçèéêñóôõö÷øùúÿÄ ÿĵw!1AQaq"2B'¡±Á #3RðbrÑ $4á%ñ&'()

それだけではありませんが、非常に長い文字列です。ある種のバイナリ文字列だと思いますか?

4

3 に答える 3

24

これは JPEG ファイルのように見えるので、そのデータを適切な MIME タイプとともにブラウザに送信できるはずです。その画像を次のようなもので出力できるはずです:

<img src="data:image/jpeg;base64,<?php echo base64_encode($imageString); ?>"/>

ただし、任意の画像形式のファイルをそのthumbnailPhoto属性に保存することもできます。したがって、サーバーから直接提供される一時ファイルにコンテンツを配置します。finfo正しい MIME タイプを取得するには、ファイルを渡す必要があります。

したがって、次のようなことができます。

$tempFile = tempnam(sys_get_temp_dir(), 'image');
file_put_contents($tempFile, $imageString);
$finfo = new finfo(FILEINFO_MIME_TYPE);
$mime  = explode(';', $finfo->file($tempFile));
echo '<img src="data:' . $mime[0] . ';base64,' . base64_encode($imageString) . '"/>';
于 2013-06-05T19:29:23.743 に答える
6

以下のコードを試してください。上記の回答の適応です。

<?php $result = ldap_search($ad , $dn , $filter, $attributes); $aduser = ldap_get_attributes($ad, ldap_first_entry($ad,$result)); ?>

<img src="data:image/jpeg;base64,<?php echo base64_encode($aduser['thumbnailPhoto'][0]); ?>" />
于 2014-09-12T13:55:34.773 に答える