public static function getMimeByLocalFile($filename, $default = 'application/octet-stream')
    {
        $type = false;

        // For local files we can detect type by the file content.
        if (!stream_is_local($filename) || !file_exists($filename)) {
            return false;
        }

        // Prefer using finfo if it exists.
        if (\extension_loaded('fileinfo')) {
            $finfo = finfo_open(FILEINFO_SYMLINK | FILEINFO_MIME_TYPE);
            $type = finfo_file($finfo, $filename);
            finfo_close($finfo);
        } else {
            // Fall back to use getimagesize() if it is available (not recommended, but better than nothing)
            $info = @getimagesize($filename);
            if ($info) {
                $type = $info['mime'];
            }
        }

        return $type ?: static::getMimeByFilename($filename, $default);
    }
public static function getMimeByLocalFile($filename, $default = 'application/octet-stream')
    {
        $type = false;

        // For local files we can detect type by the file content.
        if (!stream_is_local($filename) || !file_exists($filename)) {
            return false;
        }

        // Prefer using finfo if it exists.
        if (\extension_loaded('fileinfo')) {
            $finfo = finfo_open(FILEINFO_SYMLINK | FILEINFO_MIME_TYPE);
            $type = finfo_file($finfo, $filename);
            finfo_close($finfo);
        } else {
            // Fall back to use getimagesize() if it is available (not recommended, but better than nothing)
            $info = @getimagesize($filename);
            if ($info) {
                $type = $info['mime'];
            }
        }

        return $type ?: static::getMimeByFilename($filename, $default);
    }
public static function getMimeByLocalFile ( $ filename , $ default = 'application/octet-stream' ) { $ type = false ; // For local files we can detect type by the file content. if ( ! stream_is_local ( $ filename ) || ! file_exists ( $ filename ) ) { return false ; } // Prefer using finfo if it exists. if ( \ extension_loaded ( 'fileinfo' ) ) { $ finfo = finfo_open ( FILEINFO_SYMLINK | FILEINFO_MIME_TYPE ) ; $ type = finfo_file ( $ finfo , $ filename ) ; finfo_close ( $ finfo ) ; } else { // Fall back to use getimagesize() if it is available (not recommended, but better than nothing) $ info = @ getimagesize ( $ filename ) ; if ( $ info ) { $ type = $ info [ 'mime' ] ; } } return $ type ? : static :: getMimeByFilename ( $ filename , $ default ) ; }
Return the mimetype based on existing local file

@param string $filename Path to the file

@return string|bool
Return the mimetype based on existing local file