Mime-type Detection
In V2 mime-type detection was promoted to its own package, called
league/mime-type-detection
.
This package supplies a generic mime-type detection interface with a
finfo
based implementation.
Usage
If you’re not using Flysystem, install the package separately:
composer require league/mime-type-detection
Detectors
Finfo with extension fallback:
$detector = new League\MimeTypeDetection\FinfoMimeTypeDetector();
// Detect by contents, fall back to detection by extension.
$mimeType = $detector->detectMimeType('some/path.php', 'string contents');
// Detect by contents only, no extension fallback.
$mimeType = $detector->detectMimeTypeFromBuffer('string contents');
// Detect by actual file, no extension fallback.
$mimeType = $detector->detectMimeTypeFromFile('existing/path.php');
// Only detect by extension
$mimeType = $detector->detectMimeTypeFromPath('any/path.php');
Extension only:
$detector = new League\MimeTypeDetection\ExtensionMimeTypeDetector();
// Only detect by extension
$mimeType = $detector->detectMimeType('some/path.php', 'string contents');
// Always returns null
$mimeType = $detector->detectMimeTypeFromBuffer('string contents');
// Only detect by extension
$mimeType = $detector->detectMimeTypeFromFile('existing/path.php');
// Only detect by extension
$mimeType = $detector->detectMimeTypeFromPath('any/path.php');
Extension mime-type lookup
As a fallback for finfo
based lookup, an extension map
is used to determine the mime-type. There is an advised implementation
shipped, which is generated from information collected by the npm
package mime-db.
Provided extension maps
Generated:
$map = new League\MimeTypeDetection\GeneratedExtensionToMimeTypeMap();
// string mime-type or NULL
$mimeType = $map->lookupMimeType('png');
Empty:
$map = new League\MimeTypeDetection\EmptyExtensionToMimeTypeMap();
// Always returns NULL
$mimeType = $map->lookupMimeType('png');