Exemplo n.º 1
0
 /**
  * Autodetect a file's MIME-type
  *
  * This function may be called staticly.
  *
  * @internal Tries to use fileinfo extension at first. If that
  *  does not work, mime_magic is used. If this is also not available
  *  or does not succeed, "file" command is tried to be executed with
  *  System_Command. When that fails, too, then we use our in-built
  *  extension-to-mimetype-mapping list.
  *
  * @param string $file   Path to the file to get the type of
  * @param bool   $params Append MIME parameters if true
  *
  * @return string $file's MIME-type on success, PEAR_Error otherwise
  *
  * @since 1.0.0beta1
  * @static
  */
 function autoDetect($file, $params = false)
 {
     // Sanity checks
     if (!file_exists($file)) {
         return PEAR::raiseError("File \"{$file}\" doesn't exist");
     }
     if (!is_readable($file)) {
         return PEAR::raiseError("File \"{$file}\" is not readable");
     }
     // modifications by brusch for pimcore
     require_once 'MIME/Type/Extension.php';
     $mte = new MIME_Type_Extension();
     if ($type = $mte->getMIMEType($file)) {
         if (!PEAR::isError($type)) {
             return $type;
         }
     }
     if (function_exists('finfo_file')) {
         $finfo = finfo_open(FILEINFO_MIME);
         $type = finfo_file($finfo, $file);
         finfo_close($finfo);
         if ($type !== false && $type !== '') {
             return MIME_Type::_handleDetection($type, $params);
         }
     }
     if (function_exists('mime_content_type')) {
         $type = mime_content_type($file);
         if ($type !== false && $type !== '') {
             return MIME_Type::_handleDetection($type, $params);
         }
     }
     @(include_once 'System/Command.php');
     if (class_exists('System_Command')) {
         return MIME_Type::_handleDetection(MIME_Type::_fileAutoDetect($file), $params);
     }
 }
Exemplo n.º 2
0
 /**
  * Autodetect a file's MIME-type
  *
  * @param string $file   Path to the file to get the type of
  * @param bool   $params Append MIME parameters if true
  *
  * @return string $file's MIME-type on success, PEAR_Error otherwise
  *
  * @since 1.3.0
  *
  * @internal Tries to use fileinfo extension at first. If that
  *  does not work, mime_magic is used. If this is also not available
  *  or does not succeed, "file" command is tried to be executed with
  *  System_Command. When that fails, too, then we use our in-built
  *  extension-to-mimetype-mapping list.
  */
 function _autoDetect($file, $params = false)
 {
     // Sanity checks
     if (!file_exists($file)) {
         return PEAR::raiseError("File \"{$file}\" doesn't exist");
     }
     if (!is_readable($file)) {
         return PEAR::raiseError("File \"{$file}\" is not readable");
     }
     if ($this->useFinfo && function_exists('finfo_file')) {
         $finfo = finfo_open(FILEINFO_MIME, $this->magicFile);
         if ($finfo) {
             $type = finfo_file($finfo, $file);
             finfo_close($finfo);
             if ($type !== false && $type !== '') {
                 return MIME_Type::_handleDetection($type, $params);
             }
         }
     }
     if ($this->useMimeContentType && function_exists('mime_content_type')) {
         $type = mime_content_type($file);
         if ($type !== false && $type !== '') {
             return MIME_Type::_handleDetection($type, $params);
         }
     }
     if ($this->useFileCmd) {
         @(include_once 'System/Command.php');
         if (class_exists('System_Command')) {
             $type = MIME_Type::_fileAutoDetect($file);
             if ($type !== false && $type !== '') {
                 return MIME_Type::_handleDetection($type, $params);
             }
         }
     }
     if ($this->useExtension) {
         include_once 'MIME/Type/Extension.php';
         $mte = new MIME_Type_Extension();
         return $mte->getMIMEType($file);
     }
     return PEAR::raiseError("Sorry, couldn't determine file type.");
 }
Exemplo n.º 3
0
 /**
  * Autodetect a file's MIME-type
  *
  * This function may be called staticly.
  *
  * @internal Tries to use fileinfo extension at first. If that
  *  does not work, mime_magic is used. If this is also not available
  *  or does not succeed, "file" command is tried.
  *
  * @param string $file   Path to the file to get the type of
  * @param bool   $params Append MIME parameters if true
  *
  * @return string $file's MIME-type on success, PEAR_Error otherwise
  *
  * @since 1.0.0beta1
  * @static
  */
 function autoDetect($file, $params = false)
 {
     // Sanity checks
     if (!file_exists($file)) {
         return PEAR::raiseError("File \"{$file}\" doesn't exist");
     }
     if (!is_readable($file)) {
         return PEAR::raiseError("File \"{$file}\" is not readable");
     }
     if (function_exists('finfo_file')) {
         $finfo = finfo_open(FILEINFO_MIME);
         $type = finfo_file($finfo, $file);
         finfo_close($finfo);
         if ($type !== false && $type !== '') {
             return MIME_Type::_handleDetection($type, $params);
         }
     }
     if (function_exists('mime_content_type')) {
         $type = mime_content_type($file);
         if ($type !== false && $type !== '') {
             return MIME_Type::_handleDetection($type, $params);
         }
     }
     @(include_once 'System/Command.php');
     if (class_exists('System_Command')) {
         return MIME_Type::_handleDetection(MIME_Type::_fileAutoDetect($file), $params);
     }
     return PEAR::raiseError("Sorry, can't autodetect; you need the fileinfo or" . " mime_magic extension" . " or System_Command and 'file' installed" . " to use this function.");
 }