How To
PHP's finfo
class wraps the fileinfo
functions which can be used to get the MIME type of a file:
$finfo = new finfo(FILEINFO_MIME_TYPE);
$mimeType = $finfo->file('/tmp/test-file.xlsx');
This will give us a $mimeType
of application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
and is a great way to dynamically get the MIME type of a file.
Here is the PHP documenation for the finfo
class: https://www.php.net/manual/en/class.finfo.php, and here are the constants that can be passed when instantiating the class: https://www.php.net/manual/en/fileinfo.constants.php
A Woefully Incomplete List of MIME Types:
- .3dm x-world/x-3dmf
- .3dmf x-world/x-3dmf
- .a application/octet-stream
- .aab application/x-authorware-bin
- .aam application/x-authorware-map
- .aas application/x-authorware-seg
- .abc text/vnd.abc
- .acgi text/html
- .afl video/animaflex
- .ai application/postscript
- .aif audio/aiff
- .aif audio/x-aiff
- .aifc audio/aiff
- .aifc audio/x-aiff
- .aiff audio/aiff
- .aiff audio/x-aiff
- .aim application/x-aim
- .aip text/x-audiosoft-intra
- .ani application/x-navi-animation
- .aos application/x-nokia-9000-communicator-add-on-software
- .aps application/mime
- .arc application/octet-stream
- .arj application/arj
- .arj application/octet-stream
- .art image/x-jg
- .asf video/x-ms-asf
- .asm text/x-asm
- .asp text/asp
- .asx application/x-mplayer2
- .asx video/x-ms-asf
- .asx video/x-ms-asf-plugin
- .au audio/basic
- .au audio/x-au
- .avi application/x-troff-msvideo
- .avi video/avi
- .avi video/msvideo
- .avi video/x-msvideo
- .avs video/avs-video
- .bcpio application/x-bcpio
- .bin application/mac-binary
- .bin application/macbinary
- .bin application/octet-stream
- .bin application/x-binary
- .bin application/x-macbinary
- .bm image/bmp
- .bmp image/bmp
- .bmp image/x-windows-bmp
- .boo application/book
- .book application/book
- .boz application/x-bzip2
- .bsh application/x-bsh
- .bz application/x-bzip
- .bz2 application/x-bzip2
- .c text/plain
- .c text/x-c
- .c++ text/plain
- .cat application/vnd.ms-pki.seccat
- .cc text/plain
- .cc text/x-c
- .ccad application/clariscad
- .cco application/x-cocoa
- .cdf application/cdf
- .cdf application/x-cdf
- .cdf application/x-netcdf
- .cer application/pkix-cert
- .cer application/x-x509-ca-cert
- .cha application/x-chat
- .chat application/x-chat
- .class application/java
- .class application/java-byte-code
- .class application/x-java-class
- .com application/octet-stream
- .com text/plain
- .conf text/plain
- .cpio application/x-cpio
- .cpp text/x-c
- .cpt application/mac-compactpro
- .cpt application/x-compactpro
- .cpt application/x-cpt
- .crl application/pkcs-crl
- .crl application/pkix-crl
- .crt application/pkix-cert
- .crt application/x-x509-ca-cert
- .crt application/x-x509-user-cert
- .csh application/x-csh
- .csh text/x-script.csh
- .css application/x-pointplus
- .css text/css
- .cxx text/plain
- .dcr application/x-director
- .deepv application/x-deepv
- .def text/plain
- .der application/x-x509-ca-cert
- .dif video/x-dv
- .dir application/x-director
- .dl video/dl
- .dl video/x-dl
- .doc application/msword
- .dot application/msword
- .dp application/commonground
- .drw application/drafting
- .dump application/octet-stream
- .dv video/x-dv
- .dvi application/x-dvi
- .dwf drawing/x-dwf (old)
- .dwf model/vnd.dwf
- .dwg application/acad
- .dwg image/vnd.dwg
- .dwg image/x-dwg
- .dxf application/dxf
- .dxf image/vnd.dwg
- .dxf image/x-dwg
- .dxr application/x-director
- .el text/x-script.elisp
- .elc application/x-bytecode.elisp (compiled elisp)
- .elc application/x-elc
- .env application/x-envoy
- .eps application/postscript
- .es application/x-esrehber
- .etx text/x-setext
- .evy application/envoy
- .evy application/x-envoy
- .exe application/octet-stream
- .f text/plain
- .f text/x-fortran
- .f77 text/x-fortran
- .f90 text/plain
- .f90 text/x-fortran
- .fdf application/vnd.fdf
- .fif application/fractals
- .fif image/fif
- .fli video/fli
- .fli video/x-fli
- .flo image/florian
- .flx text/vnd.fmi.flexstor
- .fmf video/x-atomic3d-feature
- .for text/plain
- .for text/x-fortran
- .fpx image/vnd.fpx
- .fpx image/vnd.net-fpx
- .frl application/freeloader
- .funk audio/make
- .g text/plain
- .g3 image/g3fax
- .gif image/gif
- .gl video/gl
- .gl video/x-gl
- .gsd audio/x-gsm
- .gsm audio/x-gsm
- .gsp application/x-gsp
- .gss application/x-gss
- .gtar application/x-gtar
- .gz application/x-compressed
- .gz application/x-gzip
- .gzip application/x-gzip
- .gzip multipart/x-gzip
- .h text/plain
- .h text/x-h
- .hdf application/x-hdf
- .help application/x-helpfile
- .hgl application/vnd.hp-hpgl
- .hh text/plain
- .hh text/x-h
- .hlb text/x-script
- .hlp application/hlp
- .hlp application/x-helpfile
- .hlp application/x-winhelp
- .hpg application/vnd.hp-hpgl
- .hpgl application/vnd.hp-hpgl
- .hqx application/binhex
- .hqx application/binhex4
- .hqx application/mac-binhex
- .hqx application/mac-binhex40
- .hqx application/x-binhex40
- .hqx application/x-mac-binhex40
- .hta application/hta
- .htc text/x-component
- .htm text/html
- .html text/html
- .htmls text/html
- .htt text/webviewhtml
- .htx text/html
- .ice x-conference/x-cooltalk
- .ico image/x-icon
- .idc text/plain
- .ief image/ief
- .iefs image/ief
- .iges application/iges
- .iges model/iges
- .igs application/iges
- .igs model/iges
- .ima application/x-ima
- .imap application/x-httpd-imap
- .inf application/inf
- .ins application/x-internett-signup
- .ip application/x-ip2
- .isu video/x-isvideo
- .it audio/it
- .iv application/x-inventor
- .ivr i-world/i-vrml
- .ivy application/x-livescreen
- .jam audio/x-jam
- .jav text/plain
- .jav text/x-java-source
- .java text/plain
- .java text/x-java-source
- .jcm application/x-java-commerce
- .jfif image/jpeg
- .jfif image/pjpeg
- .jfif-tbnl image/jpeg
- .jpe image/jpeg
- .jpe image/pjpeg
- .jpeg image/jpeg
- .jpeg image/pjpeg
- .jpg image/jpeg
- .jpg image/pjpeg
- .jps image/x-jps
- .js application/x-javascript
- .js application/javascript
- .js application/ecmascript
- .js text/javascript
- .js text/ecmascript
- .jut image/jutvision
- .kar audio/midi
- .kar music/x-karaoke
- .ksh application/x-ksh
- .ksh text/x-script.ksh
- .la audio/nspaudio
- .la audio/x-nspaudio
- .lam audio/x-liveaudio
- .latex application/x-latex
- .lha application/lha
- .lha application/octet-stream
- .lha application/x-lha
- .lhx application/octet-stream
- .list text/plain
- .lma audio/nspaudio
- .lma audio/x-nspaudio
- .log text/plain
- .lsp application/x-lisp
- .lsp text/x-script.lisp
- .lst text/plain
- .lsx text/x-la-asf
- .ltx application/x-latex
- .lzh application/octet-stream
- .lzh application/x-lzh
- .lzx application/lzx
- .lzx application/octet-stream
- .lzx application/x-lzx
- .m text/plain
- .m text/x-m
- .m1v video/mpeg
- .m2a audio/mpeg
- .m2v video/mpeg
- .m3u audio/x-mpequrl
- .man application/x-troff-man
- .map application/x-navimap
- .mar text/plain
- .mbd application/mbedlet
- .mc$ application/x-magic-cap-package-1.0
- .mcd application/mcad
- .mcd application/x-mathcad
- .mcf image/vasa
- .mcf text/mcf
- .mcp application/netmc
- .me application/x-troff-me
- .mht message/rfc822
- .mhtml message/rfc822
- .mid application/x-midi
- .mid audio/midi
- .mid audio/x-mid
- .mid audio/x-midi
- .mid music/crescendo
- .mid x-music/x-midi
- .midi application/x-midi
- .midi audio/midi
- .midi audio/x-mid
- .midi audio/x-midi
- .midi music/crescendo
- .midi x-music/x-midi
- .mif application/x-frame
- .mif application/x-mif
- .mime message/rfc822
- .mime www/mime
- .mjf audio/x-vnd.audioexplosion.mjuicemediafile
- .mjpg video/x-motion-jpeg
- .mm application/base64
- .mm application/x-meme
- .mme application/base64
- .mod audio/mod
- .mod audio/x-mod
- .moov video/quicktime
- .mov video/quicktime
- .movie video/x-sgi-movie
- .mp2 audio/mpeg
- .mp2 audio/x-mpeg
- .mp2 video/mpeg
- .mp2 video/x-mpeg
- .mp2 video/x-mpeq2a
- .mp3 audio/mpeg3
- .mp3 audio/x-mpeg-3
- .mp3 video/mpeg
- .mp3 video/x-mpeg
- .mpa audio/mpeg
- .mpa video/mpeg
- .mpc application/x-project
- .mpe video/mpeg
- .mpeg video/mpeg
- .mpg audio/mpeg
- .mpg video/mpeg
- .mpga audio/mpeg
- .mpp application/vnd.ms-project
- .mpt application/x-project
- .mpv application/x-project
- .mpx application/x-project
- .mrc application/marc
- .ms application/x-troff-ms
- .mv video/x-sgi-movie
- .my audio/make
- .mzz application/x-vnd.audioexplosion.mzz
- .nap image/naplps
- .naplps image/naplps
- .nc application/x-netcdf
- .ncm application/vnd.nokia.configuration-message
- .nif image/x-niff
- .niff image/x-niff
- .nix application/x-mix-transfer
- .nsc application/x-conference
- .nvd application/x-navidoc
- .o application/octet-stream
- .oda application/oda
- .omc application/x-omc
- .omcd application/x-omcdatamaker
- .omcr application/x-omcregerator
- .p text/x-pascal
- .p10 application/pkcs10
- .p10 application/x-pkcs10
- .p12 application/pkcs-12
- .p12 application/x-pkcs12
- .p7a application/x-pkcs7-signature
- .p7c application/pkcs7-mime
- .p7c application/x-pkcs7-mime
- .p7m application/pkcs7-mime
- .p7m application/x-pkcs7-mime
- .p7r application/x-pkcs7-certreqresp
- .p7s application/pkcs7-signature
- .part application/pro_eng
- .pas text/pascal
- .pbm image/x-portable-bitmap
- .pcl application/vnd.hp-pcl
- .pcl application/x-pcl
- .pct image/x-pict
- .pcx image/x-pcx
- .pdb chemical/x-pdb
- .pdf application/pdf
- .pfunk audio/make
- .pfunk audio/make.my.funk
- .pgm image/x-portable-graymap
- .pgm image/x-portable-greymap
- .pic image/pict
- .pict image/pict
- .pkg application/x-newton-compatible-pkg
- .pko application/vnd.ms-pki.pko
- .pl text/plain
- .pl text/x-script.perl
- .plx application/x-pixclscript
- .pm image/x-xpixmap
- .pm text/x-script.perl-module
- .pm4 application/x-pagemaker
- .pm5 application/x-pagemaker
- .png image/png
- .pnm application/x-portable-anymap
- .pnm image/x-portable-anymap
- .pot application/mspowerpoint
- .pot application/vnd.ms-powerpoint
- .pov model/x-pov
- .ppa application/vnd.ms-powerpoint
- .ppm image/x-portable-pixmap
- .pps application/mspowerpoint
- .pps application/vnd.ms-powerpoint
- .ppt application/mspowerpoint
- .ppt application/powerpoint
- .ppt application/vnd.ms-powerpoint
- .ppt application/x-mspowerpoint
- .ppz application/mspowerpoint
- .pre application/x-freelance
- .prt application/pro_eng
- .ps application/postscript
- .psd application/octet-stream
- .pvu paleovu/x-pv
- .pwz application/vnd.ms-powerpoint
- .py text/x-script.phyton
- .pyc application/x-bytecode.python
- .qcp audio/vnd.qcelp
- .qd3 x-world/x-3dmf
- .qd3d x-world/x-3dmf
- .qif image/x-quicktime
- .qt video/quicktime
- .qtc video/x-qtc
- .qti image/x-quicktime
- .qtif image/x-quicktime
- .ra audio/x-pn-realaudio
- .ra audio/x-pn-realaudio-plugin
- .ra audio/x-realaudio
- .ram audio/x-pn-realaudio
- .ras application/x-cmu-raster
- .ras image/cmu-raster
- .ras image/x-cmu-raster
- .rast image/cmu-raster
- .rexx text/x-script.rexx
- .rf image/vnd.rn-realflash
- .rgb image/x-rgb
- .rm application/vnd.rn-realmedia
- .rm audio/x-pn-realaudio
- .rmi audio/mid
- .rmm audio/x-pn-realaudio
- .rmp audio/x-pn-realaudio
- .rmp audio/x-pn-realaudio-plugin
- .rng application/ringing-tones
- .rng application/vnd.nokia.ringing-tone
- .rnx application/vnd.rn-realplayer
- .roff application/x-troff
- .rp image/vnd.rn-realpix
- .rpm audio/x-pn-realaudio-plugin
- .rt text/richtext
- .rt text/vnd.rn-realtext
- .rtf application/rtf
- .rtf application/x-rtf
- .rtf text/richtext
- .rtx application/rtf
- .rtx text/richtext
- .rv video/vnd.rn-realvideo
- .s text/x-asm
- .s3m audio/s3m
- .saveme application/octet-stream
- .sbk application/x-tbook
- .scm application/x-lotusscreencam
- .scm text/x-script.guile
- .scm text/x-script.scheme
- .scm video/x-scm
- .sdml text/plain
- .sdp application/sdp
- .sdp application/x-sdp
- .sdr application/sounder
- .sea application/sea
- .sea application/x-sea
- .set application/set
- .sgm text/sgml
- .sgm text/x-sgml
- .sgml text/sgml
- .sgml text/x-sgml
- .sh application/x-bsh
- .sh application/x-sh
- .sh application/x-shar
- .sh text/x-script.sh
- .shar application/x-bsh
- .shar application/x-shar
- .shtml text/html
- .shtml text/x-server-parsed-html
- .sid audio/x-psid
- .sit application/x-sit
- .sit application/x-stuffit
- .skd application/x-koan
- .skm application/x-koan
- .skp application/x-koan
- .skt application/x-koan
- .sl application/x-seelogo
- .smi application/smil
- .smil application/smil
- .snd audio/basic
- .snd audio/x-adpcm
- .sol application/solids
- .spc application/x-pkcs7-certificates
- .spc text/x-speech
- .spl application/futuresplash
- .spr application/x-sprite
- .sprite application/x-sprite
- .src application/x-wais-source
- .ssi text/x-server-parsed-html
- .ssm application/streamingmedia
- .sst application/vnd.ms-pki.certstore
- .step application/step
- .stl application/sla
- .stl application/vnd.ms-pki.stl
- .stl application/x-navistyle
- .stp application/step
- .sv4cpio application/x-sv4cpio
- .sv4crc application/x-sv4crc
- .svf image/vnd.dwg
- .svf image/x-dwg
- .svr application/x-world
- .svr x-world/x-svr
- .swf application/x-shockwave-flash
- .t application/x-troff
- .talk text/x-speech
- .tar application/x-tar
- .tbk application/toolbook
- .tbk application/x-tbook
- .tcl application/x-tcl
- .tcl text/x-script.tcl
- .tcsh text/x-script.tcsh
- .tex application/x-tex
- .texi application/x-texinfo
- .texinfo application/x-texinfo
- .text application/plain
- .text text/plain
- .tgz application/gnutar
- .tgz application/x-compressed
- .tif image/tiff
- .tif image/x-tiff
- .tiff image/tiff
- .tiff image/x-tiff
- .tr application/x-troff
- .tsi audio/tsp-audio
- .tsp application/dsptype
- .tsp audio/tsplayer
- .tsv text/tab-separated-values
- .turbot image/florian
- .txt text/plain
- .uil text/x-uil
- .uni text/uri-list
- .unis text/uri-list
- .unv application/i-deas
- .uri text/uri-list
- .uris text/uri-list
- .ustar application/x-ustar
- .ustar multipart/x-ustar
- .uu application/octet-stream
- .uu text/x-uuencode
- .uue text/x-uuencode
- .vcd application/x-cdlink
- .vcs text/x-vcalendar
- .vda application/vda
- .vdo video/vdo
- .vew application/groupwise
- .viv video/vivo
- .viv video/vnd.vivo
- .vivo video/vivo
- .vivo video/vnd.vivo
- .vmd application/vocaltec-media-desc
- .vmf application/vocaltec-media-file
- .voc audio/voc
- .voc audio/x-voc
- .vos video/vosaic
- .vox audio/voxware
- .vqe audio/x-twinvq-plugin
- .vqf audio/x-twinvq
- .vql audio/x-twinvq-plugin
- .vrml application/x-vrml
- .vrml model/vrml
- .vrml x-world/x-vrml
- .vrt x-world/x-vrt
- .vsd application/x-visio
- .vst application/x-visio
- .vsw application/x-visio
- .w60 application/wordperfect6.0
- .w61 application/wordperfect6.1
- .w6w application/msword
- .wav audio/wav
- .wav audio/x-wav
- .wb1 application/x-qpro
- .wbmp image/vnd.wap.wbmp
- .web application/vnd.xara
- .wiz application/msword
- .wk1 application/x-123
- .wmf windows/metafile
- .wml text/vnd.wap.wml
- .wmlc application/vnd.wap.wmlc
- .wmls text/vnd.wap.wmlscript
- .wmlsc application/vnd.wap.wmlscriptc
- .word application/msword
- .wp application/wordperfect
- .wp5 application/wordperfect
- .wp5 application/wordperfect6.0
- .wp6 application/wordperfect
- .wpd application/wordperfect
- .wpd application/x-wpwin
- .wq1 application/x-lotus
- .wri application/mswrite
- .wri application/x-wri
- .wrl application/x-world
- .wrl model/vrml
- .wrl x-world/x-vrml
- .wrz model/vrml
- .wrz x-world/x-vrml
- .wsc text/scriplet
- .wsrc application/x-wais-source
- .wtk application/x-wintalk
- .xbm image/x-xbitmap
- .xbm image/x-xbm
- .xbm image/xbm
- .xdr video/x-amt-demorun
- .xgz xgl/drawing
- .xif image/vnd.xiff
- .xl application/excel
- .xla application/excel
- .xla application/x-excel
- .xla application/x-msexcel
- .xlb application/excel
- .xlb application/vnd.ms-excel
- .xlb application/x-excel
- .xlc application/excel
- .xlc application/vnd.ms-excel
- .xlc application/x-excel
- .xld application/excel
- .xld application/x-excel
- .xlk application/excel
- .xlk application/x-excel
- .xll application/excel
- .xll application/vnd.ms-excel
- .xll application/x-excel
- .xlm application/excel
- .xlm application/vnd.ms-excel
- .xlm application/x-excel
- .xls application/excel
- .xls application/vnd.ms-excel
- .xls application/x-excel
- .xls application/x-msexcel
- .xlt application/excel
- .xlt application/x-excel
- .xlv application/excel
- .xlv application/x-excel
- .xlw application/excel
- .xlw application/vnd.ms-excel
- .xlw application/x-excel
- .xlw application/x-msexcel
- .xm audio/xm
- .xml application/xml
- .xml text/xml
- .xmz xgl/movie
- .xpix application/x-vnd.ls-xpix
- .xpm image/x-xpixmap
- .xpm image/xpm
- .x-png image/png
- .xsr video/x-amt-showrun
- .xwd image/x-xwd
- .xwd image/x-xwindowdump
- .xyz chemical/x-pdb
- .z application/x-compress
- .z application/x-compressed
- .zip application/x-compressed
- .zip application/x-zip-compressed
- .zip application/zip
- .zip multipart/x-zip
- .zoo application/octet-stream
- .zsh text/x-script.zsh