PHP

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 ?

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 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 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 / ”, o cliente pode ir “Ah, este é um HTML, posso processá-lo internamente”, enquanto que se o servidor diz “Este é o aplicativo / pdf”, o cliente pode ir “Ah , Eu preciso iniciar o 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ã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 () 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 (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 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 XUL application/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

Post Recentes

Por que devo sempre manter o Magento 2 atualizado?

Segurança: Atualizações frequentes geralmente incluem patches de segurança para corrigir vulnerabilidades identificadas. Ao manter o Magento atualizado, você reduz significativamente…

4 semanas atrás

Adicionar uma mensagem de Alerta ou Aviso do Admin do Magento 2

Como adicionar uma mensagem de Alerta ou Aviso do Admin do Magento 2 Injete o Magento\Framework\Message\ManagerInterface no construtor da sua…

1 mês atrás

Exibir mensagens erro/sucesso da Classe: Magento\Framework\Message\ManagerInterface

Para exibir as mensagens adicionadas na classe Magento\Framework\Message\ManagerInterface em um arquivo .phtml, você pode usar o seguinte código: <?php $objectManager…

1 mês atrás

Exportar as categorias do Magento 2 em um XML

Para criar um script no Magento 2 que exporte as categorias para um arquivo XML com o nome da categoria,…

2 meses atrás

Colocar um video como Background utilizando HTML + CSS

Para definir um vídeo MP4 como plano de fundo em um <div> usando HTML e CSS, você pode seguir estas…

4 meses atrás

Desativar o “lastname” no Magento 2

Como desativar o "lastname" no Magento 2 e Adobe Commerce Desativando a obrigatoriedade do campo Execute a SQL abaixo diretamente…

4 meses atrás