本文整理汇总了PHP中OC_Image::mimeType方法的典型用法代码示例。如果您正苦于以下问题:PHP OC_Image::mimeType方法的具体用法?PHP OC_Image::mimeType怎么用?PHP OC_Image::mimeType使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OC_Image
的用法示例。
在下文中一共展示了OC_Image::mimeType方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: set
/**
* sets the users avatar
* @param \OC_Image|resource|string $data OC_Image, imagedata or path to set a new avatar
* @throws Exception if the provided file is not a jpg or png image
* @throws Exception if the provided image is not valid
* @throws \OC\NotSquareException if the image is not square
* @return void
*/
public function set($data)
{
if ($data instanceof OC_Image) {
$img = $data;
$data = $img->data();
} else {
$img = new OC_Image($data);
}
$type = substr($img->mimeType(), -3);
if ($type === 'peg') {
$type = 'jpg';
}
if ($type !== 'jpg' && $type !== 'png') {
$l = \OC_L10N::get('lib');
throw new \Exception($l->t("Unknown filetype"));
}
if (!$img->valid()) {
$l = \OC_L10N::get('lib');
throw new \Exception($l->t("Invalid image"));
}
if (!($img->height() === $img->width())) {
throw new \OC\NotSquareException();
}
$this->view->unlink('avatar.jpg');
$this->view->unlink('avatar.png');
$this->view->file_put_contents('avatar.' . $type, $data);
}
示例2: testMimeType
public function testMimeType()
{
$img = new \OC_Image(OC::$SERVERROOT . '/tests/data/testimage.png');
$this->assertEquals('image/png', $img->mimeType());
$img = new \OC_Image(file_get_contents(OC::$SERVERROOT . '/tests/data/testimage.jpg'));
$this->assertEquals('image/jpeg', $img->mimeType());
$img = new \OC_Image(base64_encode(file_get_contents(OC::$SERVERROOT . '/tests/data/testimage.gif')));
$this->assertEquals('image/gif', $img->mimeType());
$img = new \OC_Image(null);
$this->assertEquals('', $img->mimeType());
}
示例3: testMimeType
public function testMimeType()
{
$img = new \OC_Image(OC::$SERVERROOT . '/tests/data/testimage.png');
$this->assertEquals('image/png', $img->mimeType());
$img = new \OC_Image(null);
$this->assertEquals('', $img->mimeType());
if (\OC_Util::runningOnWindows()) {
$this->markTestSkipped('[Windows] Images created with imagecreate() are pngs on windows');
}
$img = new \OC_Image(file_get_contents(OC::$SERVERROOT . '/tests/data/testimage.jpg'));
$this->assertEquals('image/jpeg', $img->mimeType());
$img = new \OC_Image(base64_encode(file_get_contents(OC::$SERVERROOT . '/tests/data/testimage.gif')));
$this->assertEquals('image/gif', $img->mimeType());
}
示例4: postAvatar
public static function postAvatar($args)
{
\OC_JSON::checkLoggedIn();
\OC_JSON::callCheck();
$user = \OC_User::getUser();
if (isset($_POST['path'])) {
$path = stripslashes($_POST['path']);
$view = new \OC\Files\View('/' . $user . '/files');
$fileInfo = $view->getFileInfo($path);
if ($fileInfo['encrypted'] === true) {
$fileName = $view->toTmpFile($path);
} else {
$fileName = $view->getLocalFile($path);
}
} elseif (!empty($_FILES)) {
$files = $_FILES['files'];
if ($files['error'][0] === 0 && is_uploaded_file($files['tmp_name'][0]) && !\OC\Files\Filesystem::isFileBlacklisted($files['tmp_name'][0])) {
\OC\Cache::set('avatar_upload', file_get_contents($files['tmp_name'][0]), 7200);
$view = new \OC\Files\View('/' . $user . '/cache');
$fileName = $view->getLocalFile('avatar_upload');
unlink($files['tmp_name'][0]);
}
} else {
$l = new \OC_L10n('core');
\OC_JSON::error(array("data" => array("message" => $l->t("No image or file provided"))));
return;
}
try {
$image = new \OC_Image();
$image->loadFromFile($fileName);
$image->fixOrientation();
if ($image->valid()) {
\OC\Cache::set('tmpavatar', $image->data(), 7200);
\OC_JSON::error(array("data" => "notsquare"));
} else {
$l = new \OC_L10n('core');
$mimeType = $image->mimeType();
if ($mimeType !== 'image/jpeg' && $mimeType !== 'image/png') {
\OC_JSON::error(array("data" => array("message" => $l->t("Unknown filetype"))));
}
if (!$image->valid()) {
\OC_JSON::error(array("data" => array("message" => $l->t("Invalid image"))));
}
}
} catch (\Exception $e) {
\OC_JSON::error(array("data" => array("message" => $e->getMessage())));
}
}
示例5: getTmpAvatar
/**
* @NoAdminRequired
*
* @return DataResponse|DataDisplayResponse
*/
public function getTmpAvatar()
{
$tmpAvatar = $this->cache->get('tmpAvatar');
if (is_null($tmpAvatar)) {
return new DataResponse(['data' => ['message' => $this->l->t("No temporary profile picture available, try again")]], Http::STATUS_NOT_FOUND);
}
$image = new \OC_Image($tmpAvatar);
$resp = new DataDisplayResponse($image->data(), Http::STATUS_OK, ['Content-Type' => $image->mimeType()]);
$resp->setETag(crc32($image->data()));
$resp->cacheFor(0);
$resp->setLastModified(new \DateTime('now', new \DateTimeZone('GMT')));
return $resp;
}
示例6: updateImageProperty
/**
* @brief modifies a vcard property array with the image
*/
public function updateImageProperty(&$property, $entry, $version = null)
{
$image = new \OC_Image();
$image->loadFromData($entry);
if (strcmp($version, '4.0') == 0) {
$type = $image->mimeType();
} else {
$arrayType = explode('/', $image->mimeType());
$type = strtoupper(array_pop($arrayType));
}
$property->add('ENCODING', 'b');
$property->add('TYPE', $type);
$property->setValue($image->__toString());
}
示例7: getStandardImage
if (is_null($contact)) {
OCP\Util::writeLog('contacts', 'photo.php. The VCard for ID ' . $id . ' is not RFC compatible', OCP\Util::ERROR);
} else {
OCP\Response::enableCaching($caching);
OC_Contacts_App::setLastModifiedHeader($contact);
// Photo :-)
if ($image->loadFromBase64($contact->getAsString('PHOTO'))) {
// OK
OCP\Response::setETagHeader(md5($contact->getAsString('PHOTO')));
} else {
// Logo :-/
if ($image->loadFromBase64($contact->getAsString('LOGO'))) {
// OK
OCP\Response::setETagHeader(md5($contact->getAsString('LOGO')));
}
}
if ($image->valid()) {
$max_size = 200;
if ($image->width() > $max_size || $image->height() > $max_size) {
$image->resize($max_size);
}
}
}
if (!$image->valid()) {
// Not found :-(
getStandardImage();
//$image->loadFromFile('img/person_large.png');
}
header('Content-Type: ' . $image->mimeType());
$image->show();
//echo OC_Contacts_App::$l10n->t('This card does not contain a photo.');
示例8: bailOut
if ($image->width() <= 200 && $image->height() <= 200 || $image->resize(200)) {
$vcard = OCA\Contacts\App::getContactVCard($id);
if (!$vcard) {
OC_Cache::remove($tmpkey);
bailOut(OCA\Contacts\App::$l10n->t('Error getting contact object.'));
}
if ($vcard->__isset('PHOTO')) {
OCP\Util::writeLog('contacts', 'savecrop.php: PHOTO property exists.', OCP\Util::DEBUG);
$property = $vcard->__get('PHOTO');
if (!$property) {
OC_Cache::remove($tmpkey);
bailOut(OCA\Contacts\App::$l10n->t('Error getting PHOTO property.'));
}
$property->setValue($image->__toString());
$property->parameters[] = new Sabre\VObject\Parameter('ENCODING', 'b');
$property->parameters[] = new Sabre\VObject\Parameter('TYPE', $image->mimeType());
$vcard->__set('PHOTO', $property);
} else {
OCP\Util::writeLog('contacts', 'savecrop.php: files: Adding PHOTO property.', OCP\Util::DEBUG);
// For vCard 3.0 the type must be e.g. JPEG or PNG
// For version 4.0 the full mimetype should be used.
// https://tools.ietf.org/html/rfc2426#section-3.1.4
$type = $vcard->VERSION == '4.0' ? $image->mimeType() : strtoupper(array_pop(explode('/', $image->mimeType())));
$vcard->add('PHOTO', $image->__toString(), array('ENCODING' => 'b', 'TYPE' => $type));
}
$now = new DateTime();
$vcard->{'REV'} = $now->format(DateTime::W3C);
if (!OCA\Contacts\VCard::edit($id, $vcard)) {
bailOut(OCA\Contacts\App::$l10n->t('Error saving contact.'));
}
OCA\Contacts\App::cacheThumbnail($id, $image);
示例9: bailOut
if ($image->width() <= 200 && $image->height() <= 200 || $image->resize(200)) {
$vcard = OC_Contacts_App::getContactVCard($id);
if (!$vcard) {
OC_Cache::remove($tmpkey);
bailOut(OC_Contacts_App::$l10n->t('Error getting contact object.'));
}
if ($vcard->__isset('PHOTO')) {
OCP\Util::writeLog('contacts', 'savecrop.php: PHOTO property exists.', OCP\Util::DEBUG);
$property = $vcard->__get('PHOTO');
if (!$property) {
OC_Cache::remove($tmpkey);
bailOut(OC_Contacts_App::$l10n->t('Error getting PHOTO property.'));
}
$property->setValue($image->__toString());
$property->parameters[] = new Sabre_VObject_Parameter('ENCODING', 'b');
$property->parameters[] = new Sabre_VObject_Parameter('TYPE', $image->mimeType());
$vcard->__set('PHOTO', $property);
} else {
OCP\Util::writeLog('contacts', 'savecrop.php: files: Adding PHOTO property.', OCP\Util::DEBUG);
$vcard->addProperty('PHOTO', $image->__toString(), array('ENCODING' => 'b', 'TYPE' => $image->mimeType()));
}
$now = new DateTime();
$vcard->setString('REV', $now->format(DateTime::W3C));
if (!OC_Contacts_VCard::edit($id, $vcard)) {
bailOut(OC_Contacts_App::$l10n->t('Error saving contact.'));
}
OCP\JSON::success(array('data' => array('id' => $id, 'width' => $image->width(), 'height' => $image->height(), 'lastmodified' => OC_Contacts_App::lastModified($vcard)->format('U'))));
} else {
bailOut(OC_Contacts_App::$l10n->t('Error resizing image'));
}
} else {
示例10: bailOut
OCP\Util::writeLog('contacts', 'savecrop.php, x: ' . $x1 . ' y: ' . $y1 . ' w: ' . $w . ' h: ' . $h, OCP\Util::DEBUG);
if ($image->crop($x1, $y1, $w, $h)) {
if ($image->width() <= 200 && $image->height() <= 200 || $image->resize(200)) {
$vcard = OCA\Contacts\App::getContactVCard($id);
if (!$vcard) {
OC_Cache::remove($tmpkey);
bailOut(OCA\Contacts\App::$l10n->t('Error getting contact object.'));
}
if ($vcard->__isset('PHOTO')) {
OCP\Util::writeLog('contacts', 'savecrop.php: PHOTO property exists.', OCP\Util::DEBUG);
$property = $vcard->__get('PHOTO');
if (!$property) {
OC_Cache::remove($tmpkey);
bailOut(OCA\Contacts\App::$l10n->t('Error getting PHOTO property.'));
}
$type = imageType((string) $vcard->VERSION, $image->mimeType());
$property->setValue($image->__toString());
$property->parameters = array();
$property->parameters[] = new Sabre\VObject\Parameter('ENCODING', 'b');
$property->parameters[] = new Sabre\VObject\Parameter('TYPE', $type);
$vcard->__set('PHOTO', $property);
} else {
OCP\Util::writeLog('contacts', 'savecrop.php: Adding PHOTO property.', OCP\Util::DEBUG);
$type = imageType((string) $vcard->VERSION, $image->mimeType());
$vcard->add('PHOTO', $image->__toString(), array('ENCODING' => 'b', 'TYPE' => $type));
}
$now = new DateTime();
$vcard->{'REV'} = $now->format(DateTime::W3C);
if (!OCA\Contacts\VCard::edit($id, $vcard)) {
bailOut(OCA\Contacts\App::$l10n->t('Error saving contact.'));
}
示例11: updateVCardImageProperty
/**
* @brief modifies a vcard property array with the image
*/
public function updateVCardImageProperty(&$v_property, $ldap_entry, $version)
{
for ($i = 0; $i < count($v_property); $i++) {
$image = new \OC_Image();
$image->loadFromData($ldap_entry);
if (strcmp($version, '4.0') == 0) {
$type = $image->mimeType();
} else {
$arrayType = explode('/', $image->mimeType());
$type = strtoupper(array_pop($arrayType));
}
$v_property[$i]->add('ENCODING', 'b');
$v_property[$i]->add('TYPE', $type);
$v_property[$i]->setValue($image->__toString());
}
}
示例12: toVcard
/**
* Parse contact details into the Contact object
* @param array $contact
* @return Sabre\VObject\Component
*/
public static function toVcard($contact)
{
$vcard = new \Sabre\VObject\Component('VCARD');
$vcard->setUID();
$vcard = self::_addPropertyStrings($contact, $vcard);
if (isset($contact[self::CONTACT_PHONE])) {
foreach ($contact[self::CONTACT_PHONE] as $phone) {
if (!isset($phone['value'])) {
continue;
}
$vcard->addProperty(self::CONTACT_PHONE, $phone['value']);
$line = count($vcard->children) - 1;
foreach ($phone['type'] as $type) {
$vcard->children[$line]->parameters[] = new \Sabre\VObject\Parameter('TYPE', $type);
}
}
}
if (isset($contact[self::CONTACT_CATEGORIES])) {
$categories = array();
foreach ($contact[self::CONTACT_CATEGORIES] as $categoryId) {
$categoryData = Request::getGroupDetails($categoryId);
preg_match('/<title>(.*)<\\/title>/i', $categoryData, $matches);
if (@$matches[1]) {
$categories[] = $matches[1];
}
}
if (count($categories)) {
$vcard->setString(self::CONTACT_CATEGORIES, implode(',', $categories));
}
}
if (isset($contact[self::CONTACT_ADDRESS])) {
foreach ($contact[self::CONTACT_ADDRESS] as $address) {
$vcard->addProperty(self::CONTACT_ADDRESS, $address);
$line = count($vcard->children) - 1;
$vcard->children[$line]->parameters[] = new \Sabre\VObject\Parameter('TYPE', $address['type']);
}
}
if (isset($contact[self::CONTACT_EMAIL])) {
foreach ($contact[self::CONTACT_EMAIL] as $email) {
$vcard->addProperty(self::CONTACT_EMAIL, $email['value']);
$line = count($vcard->children) - 1;
$vcard->children[$line]->parameters[] = new \Sabre\VObject\Parameter('TYPE', $email['type']);
}
}
if (isset($contact[self::CONTACT_PHOTO]) && !empty($contact[self::CONTACT_PHOTO])) {
$data = Request::getContactImage($contact[self::CONTACT_PHOTO]);
$img = new \OC_Image();
if ($img->loadFromData($data)) {
$vcard->addProperty(self::CONTACT_PHOTO, $img->__toString(), array('ENCODING' => 'b', 'TYPE' => $img->mimeType()));
} else {
App::log('Unable to parse the image provided by Google. ', \OCP\Util::WARN);
}
}
return $vcard;
}