. * */ // Init owncloud require_once('../../lib/base.php'); OC_Util::checkLoggedIn(); OC_Util::checkAppEnabled('contacts'); $id = $_GET['id']; $l10n = new OC_L10N('contacts'); $card = OC_Contacts_VCard::find( $id ); if( $card === false ){ echo $l10n->t('Contact could not be found.'); exit(); } $addressbook = OC_Contacts_Addressbook::find( $card['addressbookid'] ); if( $addressbook === false || $addressbook['userid'] != OC_USER::getUser()){ echo $l10n->t('This is not your contact.'); // This is a weird error, why would it come up? (Better feedback for users?) exit(); } $content = OC_Contacts_VCard::parse($card['carddata']); // invalid vcard if( is_null($content)){ echo $l10n->t('This card is not RFC compatible.'); exit(); } // Photo :-) foreach($content->children as $child){ if($child->name == 'PHOTO'){ $mime = 'image/jpeg'; foreach($child->parameters as $parameter){ if( $parameter->name == 'TYPE' ){ $mime = $parameter->value; } } $photo = base64_decode($child->value); header('Content-Type: '.$mime); header('Content-Length: ' . strlen($photo)); echo $photo; exit(); } } // Logo :-/ foreach($content->children as $child){ if($child->name == 'PHOTO'){ $mime = 'image/jpeg'; foreach($child->parameters as $parameter){ if($parameter->name == 'TYPE'){ $mime = $parameter->value; } } $photo = base64_decode($child->value()); header('Content-Type: '.$mime); header('Content-Length: ' . strlen($photo)); echo $photo; exit(); } } // Not found :-( echo $l10n->t('This card does not contain a photo.');