protected static function detectMimeType($filename)
    {
        // finfo extension from PECL available
        if (function_exists('finfo_open')) {
            if (!isset(self::$_fileinfoDb)) {
                self::$_fileinfoDb = @finfo_open(FILEINFO_MIME);
            }
            if (self::$_fileinfoDb) {
                $info = finfo_file(self::$_fileinfoDb, $filename);
            }
        }
        // (deprecated) mime_content_type function available
        if (empty($info) && function_exists('mime_content_type')) {
            return mime_content_type($filename);
        }
        return empty($info)? 'application/octet-stream': $info;
    }
protected static function detectMimeType($filename)
    {
        // finfo extension from PECL available
        if (function_exists('finfo_open')) {
            if (!isset(self::$_fileinfoDb)) {
                self::$_fileinfoDb = @finfo_open(FILEINFO_MIME);
            }
            if (self::$_fileinfoDb) {
                $info = finfo_file(self::$_fileinfoDb, $filename);
            }
        }
        // (deprecated) mime_content_type function available
        if (empty($info) && function_exists('mime_content_type')) {
            return mime_content_type($filename);
        }
        return empty($info)? 'application/octet-stream': $info;
    }
protected static function detectMimeType ( $ filename ) { // finfo extension from PECL available
 if ( function_exists ( 'finfo_open' ) ) { if ( ! isset ( self :: $ _fileinfoDb ) ) { self :: $ _fileinfoDb = @ finfo_open ( FILEINFO_MIME ) ; } if ( self :: $ _fileinfoDb ) { $ info = finfo_file ( self :: $ _fileinfoDb , $ filename ) ; } } // (deprecated) mime_content_type function available
 if ( empty ( $ info ) && function_exists ( 'mime_content_type' ) ) { return mime_content_type ( $ filename ) ; } return empty ( $ info ) ? 'application/octet-stream' : $ info ; }
Tries to detect MIME type of a file

The method will try to use fileinfo extension if it is available,
deprecated mime_content_type() function in the other case. If neither
works, default 'application/octet-stream' MIME type is returned

@param string $filename file name

@return   string  file MIME type
Tries to detect MIME type of a file