mime type – Função em PHP que retorna o mimi-type de um arquivo

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.

Função em PHP que retorna o mimi-type de um 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.

Função completa:

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

O que é “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).

Mime type mais utilizados

ExtensãoTipo do documentoTipo 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
.html
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
.tiff
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
.xlsx
Microsoft Excel application/vnd.ms-excel
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.xml XML application/xml
.xul XULapplication/vnd.mozilla.xul+xml
.zip ZIP archive application/zip
.3gp 3GPP audio/video container video/3gpp
audio/3gpp if it doesn’t contain video
.3g2 3GPP2 audio/video container video/3gpp2
audio/3gpp2 if it doesn’t contain video
.7z 7-zip archive application/x-7z-compressed

Dúvidas? Faça um comentário logo abaixo ou envie uma mensagem clicando aqui.

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *