/**
  * 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;
 }
Example #2
0
/**
 * 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);
}
Example #3
0
 /**
  * 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;
 }