/** * Guess the file mime type with PECL Fileinfo extension * * @param string $file The absolute path of a file * * @return string The mime type of the file (null if not guessable) */ protected function guessFromFileinfo($file) { if (!function_exists('finfo_open')) { return null; } if (!($finfo = new finfo(FILEINFO_MIME))) { return null; } $type = $finfo->file($file); $finfo->close(); return $type; }
/** * Converts a file path into a "file" format value * @param string $filename * @param string $uploads_dir * @return string */ function P4A_Filename2File($filename, $uploads_dir) { if (!is_file($filename)) { return false; } $aFile['name'] = basename($filename); $aFile['path'] = str_replace($uploads_dir, '', $filename); $aFile['size'] = filesize($filename); $aFile['type'] = null; if (function_exists("mime_content_type")) { $aFile['type'] = mime_content_type($filename); } if (empty($aFile['type']) and class_exists("finfo")) { $finfo = new finfo(FILEINFO_MIME); $aFile['type'] = $finfo->file($filename); $finfo->close(); } list($type, $subtype) = explode('/', $aFile['type']); if ($type == 'image') { list($aFile['width'], $aFile['height']) = getimagesize($filename); } else { $aFile['width'] = null; $aFile['height'] = null; } return P4A_Array2File($aFile); }
/** * Get the Mime Type of a file * * @param string $file File path name * @return string */ public static function getType($file) { self::initCfg(); $ret = self::$cfg->getInArray('mimes', strtolower(self::getExt($file))); if (!$ret) { $ret = self::$cfg->getInArray('mimes', 'unknown'); } return $ret; $ret = false; if (self::exists($file)) { $finfo = new finfo(FILEINFO_MIME); if ($finfo) { $ret = $finfo->file($filename); $finfo->close(); } else { $ret = mime_content_type($file); } } return $ret; }