MediaWiki
REL1_24
|
Implements functions related to MIME types such as detection and mapping to file extension. More...
Public Member Functions | |
__construct (Config $config=null) | |
Initializes the MimeMagic object. | |
addExtraInfo ($info) | |
Adds to the list mapping MIME to media type. | |
addExtraTypes ($types) | |
Adds to the list mapping MIME to file extensions. | |
detectZipType ($header, $tail=null, $ext=false) | |
Detect application-specific file type of a given ZIP file from its header data. | |
findMediaType ($extMime) | |
Returns a media code matching the given MIME type or file extension. | |
getExtensionsForType ($mime) | |
Returns a list of file extensions for a given MIME type as a space separated string or null if the MIME type was unrecognized. | |
getIEMimeTypes ($fileName, $chunk, $proposed) | |
Get the MIME types that various versions of Internet Explorer would detect from a chunk of the content. | |
getMediaType ($path=null, $mime=null) | |
Determine the media type code for a file, using its MIME type, name and possibly its contents. | |
getTypesForExtension ($ext) | |
Returns a list of MIME types for a given file extension as a space separated string or null if the extension was unrecognized. | |
guessMimeType ($file, $ext=true) | |
MIME type detection. | |
guessTypesForExtension ($ext) | |
Returns a single MIME type for a given file extension or null if unknown. | |
improveTypeFromExtension ($mime, $ext) | |
Improves a MIME type using the file extension. | |
isMatchingExtension ($extension, $mime) | |
Tests if the extension matches the given MIME type. | |
isPHPImageType ($mime) | |
Returns true if the MIME type is known to represent an image format supported by the PHP GD library. | |
isRecognizableExtension ($extension) | |
Returns true if the extension represents a type which can be reliably detected from its content. | |
Static Public Member Functions | |
static | singleton () |
Get an instance of this class. | |
Public Attributes | |
array | $mExtToMime = null |
Map of file extensions types to MIME types (as a space separated list) | |
Protected Member Functions | |
getIEContentAnalyzer () | |
Get a cached instance of IEContentAnalyzer. | |
Protected Attributes | |
IEContentAnalyzer | $mIEAnalyzer |
array | $mMediaTypes = null |
Mapping of media types to arrays of MIME types. | |
array | $mMimeToExt = null |
Map of MIME types to file extensions (as a space separated list) | |
array | $mMimeTypeAliases = null |
Map of MIME type aliases. | |
Private Member Functions | |
detectMimeType ($file, $ext=true) | |
Internal MIME type detection. | |
doGuessMimeType ($file, $ext) | |
Guess the MIME type from the file contents. | |
Private Attributes | |
Config | $mConfig |
* | |
string | $mExtraInfo = '' |
Extra MIME info, set for example by media handling extensions. | |
string | $mExtraTypes = '' |
Extra MIME types, set for example by media handling extensions. | |
Static Private Attributes | |
static | $instance = null |
Implements functions related to MIME types such as detection and mapping to file extension.
Instances of this class are stateless, there only needs to be one global instance of MimeMagic. Please use MimeMagic::singleton() to get that instance.
Definition at line 144 of file MimeMagic.php.
MimeMagic::__construct | ( | Config $ | config = null | ) |
Initializes the MimeMagic object.
This is called by MimeMagic::singleton().
This constructor parses the mime.types and mime.info files and build internal mappings.
Config | $config |
Definition at line 181 of file MimeMagic.php.
References $e, $ext, $extensions, $IP, $lines, $mime, $s, array(), as, empty, ConfigFactory\getDefaultInstance(), global, wfDebug(), and wfRunHooks().
MimeMagic::addExtraInfo | ( | $ | info | ) |
Adds to the list mapping MIME to media type.
As an extension author, you are encouraged to submit patches to MediaWiki's core to add new MIME info to mime.info.
string | $info |
Definition at line 383 of file MimeMagic.php.
MimeMagic::addExtraTypes | ( | $ | types | ) |
Adds to the list mapping MIME to file extensions.
As an extension author, you are encouraged to submit patches to MediaWiki's core to add new MIME types to mime.types.
string | $types |
Definition at line 373 of file MimeMagic.php.
MimeMagic::detectMimeType | ( | $ | file, |
$ | ext = true |
||
) | [private] |
Internal MIME type detection.
Detection is done using an external program, if $wgMimeDetectorCommand is set. Otherwise, the fileinfo extension is tried if it is available. If detection fails and $ext is not false, the MIME type is guessed from the file extension, using guessTypesForExtension.
If the MIME type is still unknown, getimagesize is used to detect the MIME type if the file is an image. If no MIME type can be determined, this function returns 'unknown/unknown'.
string | $file | The file to check |
string | bool | $ext | The file extension, or true (default) to extract it from the filename. Set it to false to ignore the extension. DEPRECATED! Set to false, use improveTypeFromExtension($mime, $ext) later to improve MIME type. |
Definition at line 923 of file MimeMagic.php.
MimeMagic::detectZipType | ( | $ | header, |
$ | tail = null , |
||
$ | ext = false |
||
) |
Detect application-specific file type of a given ZIP file from its header data.
Currently works for OpenDocument and OpenXML types... If can't tell, returns 'application/zip'.
string | $header | Some reasonably-sized chunk of file header |
string | null | $tail | The tail of the file |
string | bool | $ext | The file extension, or true to extract it from the filename. Set it to false (default) to ignore the extension. DEPRECATED! Set to false, use improveTypeFromExtension($mime, $ext) later to improve MIME type. |
Definition at line 818 of file MimeMagic.php.
MimeMagic::doGuessMimeType | ( | $ | file, |
$ | ext | ||
) | [private] |
Guess the MIME type from the file contents.
string | $file | |
mixed | $ext |
MWException |
Definition at line 617 of file MimeMagic.php.
MimeMagic::findMediaType | ( | $ | extMime | ) |
Returns a media code matching the given MIME type or file extension.
File extensions are represented by a string starting with a dot (.) to distinguish them from MIME types.
This function relies on the mapping defined by $this->mMediaTypes
string | $extMime |
Definition at line 1088 of file MimeMagic.php.
MimeMagic::getExtensionsForType | ( | $ | mime | ) |
Returns a list of file extensions for a given MIME type as a space separated string or null if the MIME type was unrecognized.
Resolves MIME type aliases.
string | $mime |
Definition at line 395 of file MimeMagic.php.
MimeMagic::getIEContentAnalyzer | ( | ) | [protected] |
Get a cached instance of IEContentAnalyzer.
Definition at line 1136 of file MimeMagic.php.
MimeMagic::getIEMimeTypes | ( | $ | fileName, |
$ | chunk, | ||
$ | proposed | ||
) |
Get the MIME types that various versions of Internet Explorer would detect from a chunk of the content.
string | $fileName | The file name (unused at present) |
string | $chunk | The first 256 bytes of the file |
string | $proposed | The MIME type proposed by the server |
Definition at line 1126 of file MimeMagic.php.
MimeMagic::getMediaType | ( | $ | path = null , |
$ | mime = null |
||
) |
Determine the media type code for a file, using its MIME type, name and possibly its contents.
This function relies on the findMediaType(), mapping extensions and MIME types to media types.
analyse file if need be
look at multiple extension, separately and together.
string | $path | Full path to the image file, in case we have to look at the contents (if null, only the MIME type is used to determine the media type code). |
string | $mime | MIME type. If null it will be guessed using guessMimeType. |
Definition at line 1001 of file MimeMagic.php.
MimeMagic::getTypesForExtension | ( | $ | ext | ) |
Returns a list of MIME types for a given file extension as a space separated string or null if the extension was unrecognized.
string | $ext |
Definition at line 421 of file MimeMagic.php.
References $ext.
Referenced by guessTypesForExtension().
MimeMagic::guessMimeType | ( | $ | file, |
$ | ext = true |
||
) |
MIME type detection.
This uses detectMimeType to detect the MIME type of the file, but applies additional checks to determine some well known file formats that may be missed or misinterpreted by the default MIME detection (namely XML based formats like XHTML or SVG, as well as ZIP based formats like OPC/ODF files).
string | $file | The file to check |
string | bool | $ext | The file extension, or true (default) to extract it from the filename. Set it to false to ignore the extension. DEPRECATED! Set to false, use improveTypeFromExtension($mime, $ext) later to improve MIME type. |
Definition at line 588 of file MimeMagic.php.
MimeMagic::guessTypesForExtension | ( | $ | ext | ) |
Returns a single MIME type for a given file extension or null if unknown.
This is always the first type from the list returned by getTypesForExtension($ext).
string | $ext |
Definition at line 435 of file MimeMagic.php.
References $ext, and getTypesForExtension().
MimeMagic::improveTypeFromExtension | ( | $ | mime, |
$ | ext | ||
) |
Improves a MIME type using the file extension.
Some file formats are very generic, so their MIME type is not very meaningful. A more useful MIME type can be derived by looking at the file extension. Typically, this method would be called on the result of guessMimeType().
string | $mime | The MIME type, typically guessed from a file's content. |
string | $ext | The file extension, as taken from the file name |
Definition at line 535 of file MimeMagic.php.
MimeMagic::isMatchingExtension | ( | $ | extension, |
$ | mime | ||
) |
Tests if the extension matches the given MIME type.
Returns true if a match was found, null if the MIME type is unknown, and false if the MIME type is known but no matches where found.
string | $extension | |
string | $mime |
Definition at line 457 of file MimeMagic.php.
MimeMagic::isPHPImageType | ( | $ | mime | ) |
Returns true if the MIME type is known to represent an image format supported by the PHP GD library.
string | $mime |
Definition at line 478 of file MimeMagic.php.
MimeMagic::isRecognizableExtension | ( | $ | extension | ) |
Returns true if the extension represents a type which can be reliably detected from its content.
Use this to determine whether strict content checks should be applied to reject invalid uploads; if we can't identify the type we won't be able to say if it's invalid.
string | $extension |
Definition at line 505 of file MimeMagic.php.
static MimeMagic::singleton | ( | ) | [static] |
Get an instance of this class.
Definition at line 358 of file MimeMagic.php.
Referenced by StreamFile\contentTypeFromPath(), MediaStatisticsPage\getExtensionList(), ForeignAPIFile\getMediaType(), ForeignAPIFile\getMimeType(), MediaHandler\getThumbType(), DjVuHandler\getThumbType(), UploadBase\getTitle(), MimeMagicTest\setUp(), UploadBase\verifyExtension(), and UploadBase\verifyMimeType().
MimeMagic::$instance = null [static, private] |
Definition at line 172 of file MimeMagic.php.
Config MimeMagic::$mConfig [private] |
*
Definition at line 168 of file MimeMagic.php.
string MimeMagic::$mExtraInfo = '' [private] |
Extra MIME info, set for example by media handling extensions.
Definition at line 166 of file MimeMagic.php.
string MimeMagic::$mExtraTypes = '' [private] |
Extra MIME types, set for example by media handling extensions.
Definition at line 163 of file MimeMagic.php.
array MimeMagic::$mExtToMime = null |
Map of file extensions types to MIME types (as a space separated list)
Definition at line 157 of file MimeMagic.php.
IEContentAnalyzer MimeMagic::$mIEAnalyzer [protected] |
Definition at line 160 of file MimeMagic.php.
array MimeMagic::$mMediaTypes = null [protected] |
Mapping of media types to arrays of MIME types.
This is used by findMediaType and getMediaType, respectively
Definition at line 148 of file MimeMagic.php.
array MimeMagic::$mMimeToExt = null [protected] |
Map of MIME types to file extensions (as a space separated list)
Definition at line 154 of file MimeMagic.php.
array MimeMagic::$mMimeTypeAliases = null [protected] |
Map of MIME type aliases.
Definition at line 151 of file MimeMagic.php.