本文整理汇总了PHP中Horde_Mime_Magic::filenameToMime方法的典型用法代码示例。如果您正苦于以下问题:PHP Horde_Mime_Magic::filenameToMime方法的具体用法?PHP Horde_Mime_Magic::filenameToMime怎么用?PHP Horde_Mime_Magic::filenameToMime使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Horde_Mime_Magic
的用法示例。
在下文中一共展示了Horde_Mime_Magic::filenameToMime方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getUploadedFileType
function getUploadedFileType($field)
{
/* Get any index on the field name. */
$index = Horde_Array::getArrayParts($field, $base, $keys);
if ($index) {
/* Index present, fetch the mime type var to check. */
$keys_path = array_merge(array($base, 'type'), $keys);
$type = Horde_Array::getElement($_FILES, $keys_path);
$keys_path = array_merge(array($base, 'tmp_name'), $keys);
$tmp_name = Horde_Array::getElement($_FILES, $keys_path);
} else {
/* No index, simple set up of vars to check. */
$type = $_FILES[$field]['type'];
$tmp_name = $_FILES[$field]['tmp_name'];
}
if (empty($type) || $type == 'application/octet-stream') {
/* Type wasn't set on upload, try analising the upload. */
if (!($type = Horde_Mime_Magic::analyzeFile($tmp_name, isset($GLOBALS['conf']['mime']['magic_db']) ? $GLOBALS['conf']['mime']['magic_db'] : null))) {
if ($index) {
/* Get the name value. */
$keys_path = array_merge(array($base, 'name'), $keys);
$name = Horde_Array::getElement($_FILES, $keys_path);
/* Work out the type from the file name. */
$type = Horde_Mime_Magic::filenameToMime($name);
/* Set the type. */
$keys_path = array_merge(array($base, 'type'), $keys);
Horde_Array::getElement($_FILES, $keys_path, $type);
} else {
/* Work out the type from the file name. */
$type = Horde_Mime_Magic::filenameToMime($_FILES[$field]['name']);
/* Set the type. */
$_FILES[$field]['type'] = Horde_Mime_Magic::filenameToMime($_FILES[$field]['name']);
}
}
}
return $type;
}
示例2: getAttachment
/**
* Return an event attachment.
*
* @param string $calendar The calendar ID.
* @param string $uid The UID of the event the file is attached to.
* @param string $filename The name of the file.
*
* @return array An array containing the following keys:
* data (stream): A file pointer to the attachment data.
* content-type (string): The mime-type of the contents.
*
* @throws Kronolith_Exception
* @since 4.3.0
*/
public function getAttachment($calendar, $uid, $filename)
{
$event = $this->eventFromUID($uid, $calendar);
// Use localfile so we can use a stream.
try {
$local_file = $event->vfsInit()->readFile(Kronolith::VFS_PATH . '/' . $event->getVfsUid(), $filename);
if (!($fp = @fopen($local_file, 'rb'))) {
throw new Kronolith_Exception('Unable to open attachment.');
}
} catch (Horde_Vfs_Exception $e) {
throw new Kronolith_Exception($e);
}
// Try to determine type.
return array('data' => $fp, 'content-type' => Horde_Mime_Magic::filenameToMime($filename, false));
}
示例3: createFile
/**
* Creates a new file in the directory
*
* @param string $name Name of the file
* @param resource|string $data Initial payload
* @return null|string
*/
public function createFile($name, $data = null)
{
list($app) = explode('/', $this->_path);
if (is_resource($data)) {
$content = new Horde_Stream_Existing(array('stream' => $data));
$type = Horde_Mime_Magic::analyzeData($content->getString(0, 100), $this->_mimedb);
} else {
$content = $data;
$type = Horde_Mime_Magic::analyzeData($content, $this->_mimedb);
}
if (!$type) {
$type = Horde_Mime_Magic::filenameToMime($name);
}
try {
$this->_registry->callByPackage($app, 'put', array($this->_path . '/' . $name, $content, $type));
} catch (Horde_Exception $e) {
throw new DAV\Exception($e->getMessage(), $e->getCode(), $e);
}
}
示例4: dirExpand
function dirExpand($dir)
{
global $files, $mime_drivers, $mime_drivers_map;
$result = Horde::loadConfiguration('mime_drivers.php', array('mime_drivers', 'mime_drivers_map'), 'horde');
extract($result);
$result = Horde::loadConfiguration('mime_drivers.php', array('mime_drivers', 'mime_drivers_map'), 'luxor');
if (isset($result['mime_drivers'])) {
$mime_drivers = array_replace_recursive($mime_drivers, $result['mime_drivers']);
}
if (isset($result['mime_drivers_map'])) {
$mime_drivers_map = array_replace_recursive($mime_drivers_map, $result['mime_drivers_map']);
}
$nodes = $files->getDir($dir);
if (is_a($nodes, 'PEAR_Error')) {
return $nodes;
}
$index = $files->getIndex($dir);
if (is_a($index, 'PEAR_Error')) {
return $index;
}
if ($dir != '/') {
array_unshift($nodes, '../');
}
$list = array();
foreach ($nodes as $node) {
$link = Luxor::url($dir . $node);
$modtime = $files->getFiletime($dir . $node);
$modtime = $modtime ? gmdate('Y-m-d H:i:s', $modtime) : '-';
$description = empty($index[$node]) ? ' ' : $index[$node];
if (substr($node, -1) == '/') {
$filesize = '-';
$bytes = '';
if ($node == '../') {
$icon = Horde::img('parent.png', _("Up to parent"));
$node = _("Parent Directory");
} else {
$icon = Horde::img('folder.png', $node);
}
} else {
if (preg_match('/^.*\\.[oa]$|^core$|^00-INDEX$/', $node)) {
continue;
}
$icon = Horde::img($GLOBALS['injector']->getInstance('Horde_Core_Factory_MimeViewer')->getIcon(Horde_Mime_Magic::filenameToMime($node)), '', '', '');
$filesize = $files->getFilesize($dir . $node);
if ($filesize < 1 << 10) {
$bytes = _("bytes");
} else {
$bytes = _("kbytes");
$filesize = $filesize >> 10;
}
}
$list[] = array('icon' => $icon, 'name' => $node, 'link' => $link, 'filesize' => $filesize, 'bytes' => $bytes, 'modtime' => $modtime, 'description' => $description);
}
return $list;
}
示例5: mail
//.........这里部分代码省略.........
$mycomments = Whups::permissionsFilter($comments, 'comment', Horde_Perms::READ, '');
$to = $mail_always;
} else {
$details = Whups::getUserAttributes($user);
if (!empty($details['email'])) {
$to = Whups::formatUser($details);
$mycomments = Whups::permissionsFilter($comments, 'comment', Horde_Perms::READ, $details['user']);
}
$full_name = $details['name'];
}
/* We may have no recipients due to users excluding themselves
* from self notifies. */
if (!$to) {
continue;
}
if ($details && $details['type'] == 'user') {
$user_prefs = $GLOBALS['injector']->getInstance('Horde_Core_Factory_Prefs')->create('whups', array('user' => $details['user']));
if (($details['user'] == $registry->getAuth() || !$registry->getAuth()) && $from['type'] == 'user' && $details['user'] == $from['user'] && $user_prefs->getValue('email_others_only')) {
continue;
}
}
if ($opts['ticket']) {
/* Add attachments. */
$attachmentAdded = false;
if (empty($GLOBALS['conf']['mail']['link_attach'])) {
/* We need to remove all attachments because the attachment
* list is potentially limited by permissions. */
$mail->clearParts();
foreach ($mycomments as $comment) {
foreach ($comment['changes'] as $change) {
if ($change['type'] != 'attachment') {
continue;
}
foreach ($attachments as $attachment) {
if ($attachment['name'] != $change['value']) {
continue;
}
if (!isset($attachment['part'])) {
$attachment['part'] = new Horde_Mime_Part();
$attachment['part']->setType(Horde_Mime_Magic::filenameToMime($change['value'], false));
$attachment['part']->setDisposition('attachment');
$attachment['part']->setContents($vfs->read(Whups::VFS_ATTACH_PATH . '/' . $opts['ticket']->getId(), $change['value']));
$attachment['part']->setName($change['value']);
}
$mail->addMimePart($attachment['part']);
$attachmentAdded = true;
break;
}
}
}
}
$formattedComment = $this->formatComments($mycomments, $opts['ticket']->getId());
if (!$attachmentAdded && !strlen(trim($formattedComment)) && $details && $details['type'] == 'user' && $user_prefs->getValue('email_comments_only')) {
continue;
}
$opts['view']->comment = $formattedComment;
}
$addr_ob = new Horde_Mail_Rfc822_Address($to);
if ($addr_ob->valid) {
$bare_address = $addr_ob->bare_address;
if (!empty($seen_email_addresses[$bare_address])) {
continue;
}
$seen_email_addresses[$bare_address] = true;
if (empty($full_name) && !is_null($addr_ob->personal)) {
$full_name = $addr_ob->personal;
}
}
// Use email address as fallback.
if (empty($full_name)) {
$full_name = $to;
}
$opts['view']->full_name = $full_name;
$opts['view']->role = $role;
$body = $opts['view']->render($opts['template']);
if (!strlen(trim($body))) {
continue;
}
$mail->setBody($body);
$mail->addHeaderOb(Horde_Mime_Headers_MessageId::create());
if ($opts['ticket']) {
$message_id = '<whups-' . $opts['ticket']->getId() . '-' . md5($user) . '@' . $conf['server']['name'] . '>';
if ($opts['new']) {
$mail->addHeader('Message-ID', $message_id);
} else {
$mail->addHeader('In-Reply-To', $message_id);
$mail->addHeader('References', $message_id);
}
}
$mail->clearRecipients();
$mail->addHeader('To', $to);
try {
$mail->send($GLOBALS['injector']->getInstance('Horde_Mail'), true);
$entry = sprintf('%s Message sent to %s from "%s"', $_SERVER['REMOTE_ADDR'], $to, $GLOBALS['registry']->getAuth());
Horde::log($entry, 'INFO');
} catch (Horde_Mime_Exception $e) {
Horde::log($e, 'ERR');
}
}
}
示例6: _handleFileUpload
/**
* Checks for a file uploaded via the pluploader. If one is found, handle
* it, send the server json response and exit.
*/
protected function _handleFileUpload()
{
if ($filename = Horde_Util::getFormData('name')) {
if (isset($_SERVER["HTTP_CONTENT_TYPE"])) {
$type = $_SERVER["HTTP_CONTENT_TYPE"];
} elseif (isset($_SERVER["CONTENT_TYPE"])) {
$type = $_SERVER["CONTENT_TYPE"];
}
if (empty($type) || $type == 'application/octet-stream') {
$temp = Horde_Util::getTempFile('', true);
$out = fopen($temp, 'w+');
if ($out) {
// Read binary input stream and append it to temp file
$in = fopen("php://input", "rb");
if ($in) {
stream_copy_to_stream($in, $out);
rewind($out);
fclose($in);
} else {
fclose($out);
header('Content-Type: application/json');
echo '{ "status" : "500", "file": "' . $temp . '", error" : { "message": "Failed to open input stream." } }';
exit;
}
} else {
header('Content-Type: application/json');
echo '{ "status" : "500", "file": "' . $temp . '", error" : { "message": "Failed to open output stream." } }';
exit;
}
// // Don't know type. Try to deduce it.
if (!($type = Horde_Mime_Magic::analyzeFile($temp, isset($GLOBALS['conf']['mime']['magic_db']) ? $GLOBALS['conf']['mime']['magic_db'] : null))) {
$type = Horde_Mime_Magic::filenameToMime($filename);
}
} elseif (strpos($type, "multipart") !== false) {
// Handle mulitpart uploads
$temp = Horde_Util::getTempFile('', true);
$out = fopen($temp, 'w+');
if ($out) {
$in = fopen($_FILES['file']['tmp_name'], 'rb');
if ($in) {
stream_copy_to_stream($in, $out);
rewind($out);
fclose($in);
} else {
fclose($out);
header('Content-Type: application/json');
echo '{ "status" : "500", "file": "' . $temp . '", error" : { "message": "Failed to open input stream." } }';
exit;
}
} else {
header('Content-Type: application/json');
echo '{ "status" : "500", "file": "' . $temp . '", error" : { "message": "Failed to open output stream." } }';
exit;
}
}
// Figure out what to do with the file
if (in_array($type, array('x-extension/zip', 'application/x-compressed', 'application/x-zip-compressed', 'application/zip')) || Horde_Mime_Magic::filenameToMime($temp) == 'application/zip') {
// ZIP file
try {
$image_ids = $this->_handleZip($temp);
} catch (Ansel_Exception $e) {
$notification->push(sprintf(_("There was an error processing the uploaded archive: %s"), $e->getMessage()), 'horde.error');
}
} else {
// Try and make sure the image is in a recognizeable format.
if (getimagesize($temp) === false) {
header('Content-Type: application/json');
echo '{ "status" : "400", "error" : { "message": "Not a valid, supported image file." }, "id" : "id" }';
exit;
}
// Add the image to the gallery
$image_data = array('image_filename' => $filename, 'image_type' => $type, 'data' => stream_get_contents($out));
fclose($out);
try {
$image_ids = array($this->_gallery->addImage($image_data));
} catch (Ansel_Exception $e) {
header('Content-Type: application/json');
echo '{ "status" : "400", "error" : { "message": "Not a valid, supported image file." }, "id" : "id" }';
exit;
}
unset($data);
}
// Try to auto generate some thumbnails.
$qtask = new Ansel_Queue_ProcessThumbs($image_ids);
$queue = $GLOBALS['injector']->getInstance('Horde_Queue_Storage');
$queue->add($qtask);
header('Content-Type: application/json');
echo '{ "status" : "200", "error" : {} }';
exit;
}
}
示例7: displayContents
/**
* @throws Wicked_Exception
*/
public function displayContents($isBlock)
{
$view = $GLOBALS['injector']->createInstance('Horde_View');
$view->addHelper('Wicked_View_Helper_Navigation');
$view->name = $this->pageName();
$view->text = $this->getProcessor()->transform($this->getText());
if ($isBlock) {
return $view->render('display/standard');
}
$view->showTools = true;
if ($this->allows(Wicked::MODE_EDIT) && !$this->isLocked(Wicked::lockUser())) {
$view->edit = Horde::widget(array('url' => Wicked::url('EditPage')->add('referrer', $this->pageName()), 'title' => _("_Edit"), 'class' => 'wicked-edit'));
}
if ($this->isLocked()) {
if ($this->allows(Wicked::MODE_UNLOCKING)) {
$view->unlock = Horde::widget(array('url' => $this->pageUrl(null, 'unlock')->remove('version'), 'title' => _("Un_lock"), 'class' => 'wicked-unlock'));
}
} else {
if ($this->allows(Wicked::MODE_LOCKING)) {
$view->lock = Horde::widget(array('url' => $this->pageUrl(null, 'lock')->remove('version'), 'title' => _("_Lock"), 'class' => 'wicked-lock'));
}
}
if ($this->allows(Wicked::MODE_REMOVE)) {
$params = array('referrer' => $this->pageName());
if ($this->isOld()) {
$params['version'] = $this->version();
}
$view->remove = Horde::widget(array('url' => Wicked::url('DeletePage')->add($params), 'title' => _("_Delete"), 'class' => 'wicked-delete'));
}
if ($this->allows(Wicked::MODE_REMOVE) && !$this->isLocked(Wicked::lockUser())) {
$view->rename = Horde::widget(array('url' => Wicked::url('MergeOrRename')->add('referrer', $this->pageName()), 'title' => _("_Merge/Rename")));
}
$view->backLinks = Horde::widget(array('url' => Wicked::url('BackLinks')->add('referrer', $this->pageName()), 'title' => _("_Backlinks")));
$view->likePages = Horde::widget(array('url' => Wicked::url('LikePages')->add('referrer', $this->pageName()), 'title' => _("S_imilar Pages")));
$view->attachedFiles = Horde::widget(array('url' => Wicked::url('AttachedFiles')->add('referrer', $this->pageName()), 'title' => _("Attachments")));
if ($this->allows(Wicked::MODE_HISTORY)) {
$view->changes = Horde::widget(array('url' => $this->pageUrl('history.php')->remove('version'), 'title' => _("Hi_story")));
}
if ($GLOBALS['registry']->isAdmin()) {
$permsurl = Horde::url($GLOBALS['registry']->get('webroot', 'horde') . '/admin/perms/edit.php')->add(array('category' => 'wicked:pages:' . $this->pageId(), 'autocreate' => 1, 'autocreate_copy' => 'wicked', 'autocreate_guest' => Horde_Perms::SHOW | Horde_Perms::READ, 'autocreate_default' => Horde_Perms::SHOW | Horde_Perms::READ | Horde_Perms::EDIT | Horde_Perms::DELETE));
$view->perms = Horde::widget(array('url' => $permsurl, 'target' => '_blank', 'title' => _("Permissio_ns")));
}
if ($histories = $GLOBALS['session']->get('wicked', 'history')) {
$view->history = Horde::widget(array('url' => '#', 'onclick' => 'document.location = document.display.history[document.display.history.selectedIndex].value;', 'title' => _("Ba_ck to")));
$view->histories = array();
foreach ($histories as $history) {
if (!strlen($history)) {
continue;
}
$view->histories[(string) Wicked::url($history)] = $history;
}
}
$pageId = $GLOBALS['wicked']->getPageId($this->pageName());
$attachments = $GLOBALS['wicked']->getAttachedFiles($pageId);
if (count($attachments)) {
$view->attachments = array();
foreach ($attachments as $attachment) {
$url = $GLOBALS['registry']->downloadUrl($attachment['attachment_name'], array('page' => $this->pageName(), 'file' => $attachment['attachment_name'], 'version' => $attachment['attachment_version']));
$icon = $GLOBALS['injector']->getInstance('Horde_Core_Factory_MimeViewer')->getIcon(Horde_Mime_Magic::filenameToMime($attachment['attachment_name']));
$view->attachments[] = Horde::link($url) . '<img src="' . $icon . '" width="16" height="16" alt="" /> ' . htmlspecialchars($attachment['attachment_name']) . '</a>';
}
}
$view->downloadPlain = Wicked::url($this->pageName())->add(array('actionID' => 'export', 'format' => 'plain'))->link() . _("Plain Text") . '</a>';
$view->downloadHtml = Wicked::url($this->pageName())->add(array('actionID' => 'export', 'format' => 'html'))->link() . _("HTML") . '</a>';
$view->downloadLatex = Wicked::url($this->pageName())->add(array('actionID' => 'export', 'format' => 'tex'))->link() . _("Latex") . '</a>';
$view->downloadRest = Wicked::url($this->pageName())->add(array('actionID' => 'export', 'format' => 'rst'))->link() . _("reStructuredText") . '</a>';
return $view->render('display/standard');
}
示例8: addAttachment
/**
* Adds an attachment.
*
* @param string $file The path to the file.
* @param string $name The file name to use for the attachment.
* @param string $type The content type of the file.
* @param string $charset The character set of the part (only relevant for
* text parts.
*
* @return integer The part number.
*/
public function addAttachment($file, $name = null, $type = null, $charset = 'us-ascii')
{
if (empty($name)) {
$name = basename($file);
}
if (empty($type)) {
$type = Horde_Mime_Magic::filenameToMime($file, false);
}
$num = $this->addPart($type, file_get_contents($file), $charset, 'attachment');
$this->_parts[$num]->setName($name);
return $num;
}
示例9: printfile_raw
function printfile_raw($pathname)
{
global $mime_drivers, $mime_drivers_map;
$result = Horde::loadConfiguration('mime_drivers.php', array('mime_drivers', 'mime_drivers_map'), 'horde');
extract($result);
$result = Horde::loadConfiguration('mime_drivers.php', array('mime_drivers', 'mime_drivers_map'), 'luxor');
if (isset($result['mime_drivers'])) {
$mime_drivers = array_replace_recursive($mime_drivers, $result['mime_drivers']);
}
if (isset($result['mime_drivers_map'])) {
$mime_drivers_map = array_replace_recursive($mime_drivers_map, $result['mime_drivers_map']);
}
$filename = $GLOBALS['files']->toReal($pathname);
$data = file_get_contents($filename);
$mime_part = new Horde_Mime_Part(Horde_Mime_Magic::filenameToMime($pathname), $data);
$mime_part->setName($pathname);
$viewer = $GLOBALS['injector']->getInstance('Horde_Core_Factory_MimeViewer')->create($mime_part);
if ($viewer->getType() == 'text/plain') {
return '<pre class="fixed">' . htmlspecialchars($viewer->render()) . '</pre>';
} else {
return $viewer->render();
}
}
示例10: download
/**
*/
public function download(Horde_Variables $vars)
{
global $wicked;
$page = $vars->get('page', 'Wiki/Home');
$page_id = ($id = $wicked->getPageId($page)) === false ? $page : $id;
$version = $vars->version;
if (empty($version)) {
try {
$attachments = $wicked->getAttachedFiles($page_id);
foreach ($attachments as $attachment) {
if ($attachment['attachment_name'] == $vars->file) {
$version = $attachment['attachment_version'];
}
}
} catch (Wicked_Exception $e) {
}
if (empty($version)) {
// If we redirect here, we cause an infinite loop with inline
// attachments.
header('HTTP/1.1 404 Not Found');
exit;
}
}
try {
$data = $wicked->getAttachmentContents($page_id, $vars->file, $version);
$wicked->logAttachmentDownload($page_id, $vars->file);
} catch (Wicked_Exception $e) {
// If we redirect here, we cause an infinite loop with inline
// attachments.
header('HTTP/1.1 404 Not Found');
echo $e->getMessage();
exit;
}
$type = Horde_Mime_Magic::analyzeData($data, isset($conf['mime']['magic_db']) ? $conf['mime']['magic_db'] : null);
if ($type === false) {
$type = Horde_Mime_Magic::filenameToMime($vars->file, false);
}
return array('data' => $data, 'file' => $vars->file, 'type' => $type);
}