Skip to content
Proyectos

thephpleague/mime-type-detection

Ver en GitHub

thephpleague/mime-type-detection has 1,343 GitHub stars and 29 forks. GitHot measured -1 stars in 24 hours and -1 in 7 days. Last checked 2026-11-14 23:28 UTC. Last push 2026-07-09.

Cómo se miden estas cifras

Crecimiento de estrellas medido

in 24h
-1
in 7 days
-1
in 15 days
Recopilando historial
in 1 month
Recopilando historial

Cambios netos en períodos que se solapan, no totales diarios. Los datos no disponibles se dejan en blanco. Las estrellas indican interés, no calidad.

Acerca de

League Mime Type Detection

Herramientas de desarrollo

README.md

Original

League Mime Type Detection

Author Source Code Latest Version Software License Build Status Coverage Status Quality Score Total Downloads php 7.2+

This package supplies a generic mime-type detection interface with a finfo based implementation.

Usage

composer require league/mime-type-detection

Consumer interface

Your code is advised to couple to the following interfaces:

  • League\MimetypeDetection\MimeTypeDetector
    This contract is used to detect mimetypes based on file names and file contents.
  • League\MimetypeDetection\ExtensionLookup
    This contract is used to lookup one or all mimetypes for a given file extension. Added in 1.13.0.

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');

// Constructor options
$detector = new League\MimeTypeDetection\FinfoMimeTypeDetector(
  $pathToMimeDatabase, // Custom mime database location, default: ''
  $customExtensionMap, // Custom extension fallback mapp, default: null
  $bufferSampleSize // Buffer size limit, used to take a sample (substr) from the input buffer to reduce memory consumption.
);

Extension only:

$detector = new League\MimeTypeDetection\ExtensionMimeTypeDetector();

// Only detect by extension, ignores the file contents
$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 lookup by mime-type

This feature was added in version 1.13.0

The various implementations can look up the extensions that can be used for a given mime-type.

// string | null
$extension = $detector->lookupExtension($mime$type);

// array<string>
$allExtensions = $detector->lookupAllExtensions($mimeType);

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');

Overriding decorator

$innerMap = new League\MimeTypeDetection\GeneratedExtensionToMimeTypeMap();
$map = new League\MimeTypeDetection\OverridingExtensionToMimeTypeMap($innerMap, ['png' => 'custom/mimetype']);

// string "custom/mimetype"
$mimeType = $map->lookupMimeType('png');

Empty:

$map = new League\MimeTypeDetection\EmptyExtensionToMimeTypeMap();

// Always returns NULL
$mimeType = $map->lookupMimeType('png');