Пример #1
0
 /**
  * Determines the file extension name based on a given MIME type, or a file path.
  *
  * This method will use a local map between MIME type and extension name.
  *
  * @param string $file      The file name or mime type
  * @param string $magicFile The path of the file that contains all available extension information.
  *                          If this is not set, the default 'system.utils.fileExtensions' file will be used.
  *
  * @return string|null The extension name. Null is returned if the extension cannot be determined.
  */
 public static function getExtensionByMimeType($file, $magicFile = null)
 {
     static $mimeTypes, $customMimeTypes = array();
     if ($magicFile === null && $mimeTypes === null) {
         $mimeTypes = (require \Yii::getPathOfAlias('system.utils.fileExtensions') . '.php');
     } else {
         if ($magicFile !== null && !isset($customMimeTypes[$magicFile])) {
             $customMimeTypes[$magicFile] = (require $magicFile);
         }
     }
     // See if $file is actually a MIME type
     $mime = strtolower($file);
     if ($magicFile === null && isset($mimeTypes[$mime])) {
         return $mimeTypes[$mime];
     } else {
         if ($magicFile !== null && isset($customMimeTypes[$magicFile][$mime])) {
             return $customMimeTypes[$magicFile][$mime];
         }
     }
     return parent::getExtensionByMimeType($file, $magicFile);
 }