
Como descobrir qual é o mimi-type de um arquivo utilizando o PHP?
Para isso será necessário uma função customizada que irá retornar o “mimi-type” com base no nome do arquivo.
MIME significa extensões multi-usos de correio da Internet “Multi-purpose Internet Mail Extensions”.
Os tipos MIME formam uma maneira padrão de classificar os tipos de arquivos na Internet. Os programas da Internet, como servidores Web e navegadores, possuem uma lista de tipos MIME, para que possam transferir arquivos do mesmo tipo da mesma forma, independentemente do sistema operacional em que estejam trabalhando.
function get_mime_type($file) {
$idx = explode( '.', $filename );
$count_explode = count($idx);
$idx = strtolower($idx[$count_explode-1]);
$mimet = array(
'txt' => 'text/plain',
'htm' => 'text/html',
'html' => 'text/html',
'php' => 'text/html',
'css' => 'text/css',
'js' => 'application/javascript',
'json' => 'application/json',
'xml' => 'application/xml',
'swf' => 'application/x-shockwave-flash',
'flv' => 'video/x-flv',
// images
'png' => 'image/png',
'jpe' => 'image/jpeg',
'jpeg' => 'image/jpeg',
'jpg' => 'image/jpeg',
'gif' => 'image/gif',
'bmp' => 'image/bmp',
'ico' => 'image/vnd.microsoft.icon',
'tiff' => 'image/tiff',
'tif' => 'image/tiff',
'svg' => 'image/svg+xml',
'svgz' => 'image/svg+xml',
// archives
'zip' => 'application/zip',
'rar' => 'application/x-rar-compressed',
'exe' => 'application/x-msdownload',
'msi' => 'application/x-msdownload',
'cab' => 'application/vnd.ms-cab-compressed',
// audio/video
'mp3' => 'audio/mpeg',
'qt' => 'video/quicktime',
'mov' => 'video/quicktime',
// adobe
'pdf' => 'application/pdf',
'psd' => 'image/vnd.adobe.photoshop',
'ai' => 'application/postscript',
'eps' => 'application/postscript',
'ps' => 'application/postscript',
// ms office
'doc' => 'application/msword',
'rtf' => 'application/rtf',
'xls' => 'application/vnd.ms-excel',
'ppt' => 'application/vnd.ms-powerpoint',
'docx' => 'application/msword',
'xlsx' => 'application/vnd.ms-excel',
'pptx' => 'application/vnd.ms-powerpoint',
// open office
'odt' => 'application/vnd.oasis.opendocument.text',
'ods' => 'application/vnd.oasis.opendocument.spreadsheet',
);
if (isset( $mimet[$idx] )) {
return $mimet[$idx];
} else {
return 'application/octet-stream';
}
} Um simples exemplo de sua utilização:
$file = "foto-upload-01.jpeg"; $mime_type = get_mime_type($file); var_dump( $mime_type );
Um tipo MIME é um rótulo usado para identificar um tipo de dados. É usado para que o software possa saber como lidar com os dados. Ele tem o mesmo propósito na Internet que as extensões de arquivo fazem no Microsoft Windows.
Então, se um servidor diz “Este é o texto / html”, o cliente pode ir “Ah, este é um documento HTML, posso processá-lo internamente”, enquanto que se o servidor diz “Este é o aplicativo / pdf”, o cliente pode ir “Ah , Eu preciso iniciar o plugin FoxIt PDF Reader que o usuário instalou e que se registrou como o manipulador de aplicação / pdf. ”
Você encontrará mais comumente nos cabeçalhos das mensagens HTTP (para descrever o conteúdo com o qual um servidor HTTP está respondendo ou a formatação dos dados que está sendo POSTADO em uma solicitação) e em cabeçalhos de e-mail (para descrever o formato da mensagem e anexos).
| Extensão | Tipo do documento | Tipo MIME |
|---|---|---|
.aac | AAC audio file | audio/aac |
.abw | AbiWord document | application/x-abiword |
.arc | Archive document (multiple files embedded) | application/octet-stream |
.avi | AVI: Audio Video Interleave | video/x-msvideo |
.azw | Amazon Kindle eBook format | application/vnd.amazon.ebook |
.bin | Any kind of binary data | application/octet-stream |
.bz | BZip archive | application/x-bzip |
.bz2 | BZip2 archive | application/x-bzip2 |
.csh | C-Shell script | application/x-csh |
.css | Cascading Style Sheets (CSS) | text/css |
.csv | Comma-separated values (CSV) | text/csv |
.doc | Microsoft Word | application/msword |
.eot | MS Embedded OpenType fonts | application/vnd.ms-fontobject |
.epub | Electronic publication (EPUB) | application/epub+zip |
.gif | Graphics Interchange Format (GIF) | image/gif |
.htm | HyperText Markup Language (HTML) | text/html |
.ico | Icon format | image/x-icon |
.ics | iCalendar format | text/calendar |
.jar | Java Archive (JAR) | application/java-archive |
.jpeg.jpg | JPEG images | image/jpeg |
.js | JavaScript (ECMAScript) | application/javascript |
.json | JSON format | application/json |
.mid.midi | Musical Instrument Digital Interface (MIDI) | audio/midi |
.mpeg | MPEG Video | video/mpeg |
.mpkg | Apple Installer Package | application/vnd.apple.installer+xml |
.odp | OpenDocument presentation document | application/vnd.oasis.opendocument.presentation |
.ods | OpenDocument spreadsheet document | application/vnd.oasis.opendocument.spreadsheet |
.odt | OpenDocument text document | application/vnd.oasis.opendocument.text |
.oga | OGG audio | audio/ogg |
.ogv | OGG video | video/ogg |
.ogx | OGG | application/ogg |
.otf | OpenType font | font/otf |
.png | Portable Network Graphics | image/png |
.pdf | Adobe Portable Document Format (PDF) | application/pdf |
.ppt | Microsoft PowerPoint | application/vnd.ms-powerpoint |
.rar | RAR archive | application/x-rar-compressed |
.rtf | Rich Text Format (RTF) | application/rtf |
.sh | Bourne shell script | application/x-sh |
.svg | Scalable Vector Graphics (SVG) | image/svg+xml |
.swf | Small web format (SWF) or Adobe Flash document | application/x-shockwave-flash |
.tar | Tape Archive (TAR) | application/x-tar |
.tif | Tagged Image File Format (TIFF) | image/tiff |
.ts | Typescript file | application/typescript |
.ttf | TrueType Font | font/ttf |
.vsd | Microsoft Visio | application/vnd.visio |
.wav | Waveform Audio Format | audio/x-wav |
.weba | WEBM audio | audio/webm |
.webm | WEBM video | video/webm |
.webp | WEBP image | image/webp |
.woff | Web Open Font Format (WOFF) | font/woff |
.woff2 | Web Open Font Format (WOFF) | font/woff2 |
.xhtml | XHTML | application/xhtml+xml |
.xls | Microsoft Excel | application/vnd.ms-excel |
.xml | XML | application/xml |
.xul | XUL | application/vnd.mozilla.xul+xml |
.zip | ZIP archive | application/zip |
.3gp | 3GPP audio/video container | video/3gppaudio/3gpp if it doesn’t contain video |
.3g2 | 3GPP2 audio/video container | video/3gpp2audio/3gpp2 if it doesn’t contain video |
.7z | 7-zip archive | application/x-7z-compressed |
Módulo gratuito Roger_CnpjAlfanumerico que aplica máscara e validação do novo CNPJ alfanumérico no checkout e formulários do Magento 2 e…
A partir de 06/07/2026 a Receita passa a emitir CNPJ alfanumérico. Conheça o plugin grátis que aplica máscara e validação…
Para remover um módulo do Magento 2, siga os passos abaixo: 1. Desabilitar o módulo Primeiro, desabilite o módulo usando…
Para cancelar 100% do pedido e criar um crédito para todos os itens através da API REST do Magento 2,…
No Magento 2, a quantidade "reservada" na "Salable Quantity" é gerenciada principalmente pelos módulos MSI (Multi-Source Inventory). A "Salable Quantity"…
Como corrigir o erro ao acessar o Admin do Magento 2. Mesmo após fazer o login, permanece na tela de…