PHP Function - Mime types

<?php
function GetMime($file){
 
$file basename($file);
 
$ext =    substr(strrchr($file"."), 1);
$mimes = array(
  
"*" => "application/octet-stream"
  
"" => "application/octet-stream"
  
"0" => "application/octet-stream"
  
false => "application/octet-stream"
  
null => "application/octet-stream"
  
"ac" => "text/plain"
  
"acx" => "application/internet-property-stream"
  
"ai" => "application/postscript"
  
"aif" => "audio/x-aiff"
  
"aifc" => "audio/x-aiff"
  
"aiff" => "audio/x-aiff"
  
"asc" => "text/plain"
  
"asf" => "video/x-ms-asf"
  
"asr" => "video/x-ms-asf"
  
"asx" => "video/x-ms-asf"
  
"atom" => "application/atom+xml"
  
"au" => "audio/basic"
  
"avi" => "video/x-msvideo"
  
"axs" => "application/olescript"
  
"bas" => "text/plain"
  
"bcpio" => "application/x-bcpio"
  
"bin" => "application/octet-stream"
  
"bmp" => "image/bmp"
  
"c" => "text/plain"
  
"cat" => "application/vnd.ms-pkiseccat"
  
"cdf" => "application/x-cdf"
  
"cer" => "application/x-x509-ca-cert"
  
"cgm" => "image/cgm"
  
"ch" => "application/x-ch"
  
"cla" => "application/octet-tream"
  
"class" => "application/octet-stream"
  
"clp" => "application/x-msclip"
  
"cmx" => "image/x-cmx"
  
"cod" => "image/cis-cod"
  
"cpio" => "application/x-cpio"
  
"cpt" => "application/mac-compactpro"
  
"crd" => "application/x-mscardfile"
  
"crl" => "application/pkix-crl"
  
"crt" => "application/x-x509-ca-cert"
  
"csh" => "application/x-csh"
  
"css" => "text/css"
  
"dcr" => "application/x-director"
  
"der" => "application/x-x509-ca-cert"
  
"dif" => "video/x-dv"
  
"dir" => "application/x-director"
  
"djv" => "image/vnd.djvu"
  
"djvu" => "image/vnd.djvu"
  
"dll" => "application/x-msdownload"
  
"dm" => "application/octet-tream"
  
"dmg" => "application/octet-tream"
  
"dms" => "application/octet-stream"
  
"doc" => "application/msword"
  
"dot" => "application/msword"
  
"dtd" => "application/xml-dtd"
  
"dv" => "video/x-dv"
  
"dvi" => "application/x-dvi"
  
"dxr" => "application/x-director"
  
"ep" => "application/potcript"
  
"eps" => "application/postscript"
  
"etx" => "text/x-setext"
  
"evy" => "application/envoy"
  
"exe" => "application/octet-stream"
  
"ez" => "application/andrew-inset"
  
"fif" => "application/fractals"
  
"flr" => "x-world/x-vrml"
  
"gif" => "image/gif"
  
"gm" => "text/gml"
  
"gml" => "text/gml"
  
"gram" => "application/rg"
  
"grxml" => "application/rg+xml"
  
"gtar" => "application/x-gtar"
  
"gz" => "application/x-gzip"
  
"h" => "text/plain"
  
"har" => "application/x-har"
  
"hdf" => "application/x-hdf"
  
"hlp" => "application/winhlp"
  
"hqx" => "application/mac-binhex40"
  
"hta" => "application/hta"
  
"htc" => "text/x-component"
  
"htm" => "text/html"
  
"html" => "text/html"
  
"htt" => "text/webviewhtml"
  
"ic" => "text/calendar"
  
"ice" => "x-conference/x-cooltalk"
  
"ico" => "image/x-icon"
  
"ief" => "image/ief"
  
"ifb" => "text/calendar"
  
"ig" => "model/ige"
  
"ige" => "model/ige"
  
"iges" => "model/iges"
  
"igs" => "model/iges"
  
"iii" => "application/x-iphone"
  
"ilo" => "model/meh"
  
"ins" => "application/x-internet-signup"
  
"isp" => "application/x-internet-signup"
  
"it" => "application/x-tuffit"
  
"j" => "application/x-javacript"
  
"jfif" => "image/pipeg"
  
"jnlp" => "application/x-java-jnlp-file"
  
"jp2" => "image/jp2"
  
"jpe" => "image/jpeg"
  
"jpeg" => "image/jpeg"
  
"jpg" => "image/jpeg"
  
"js" => "application/x-javascript"
  
"kar" => "audio/midi"
  
"kd" => "application/x-koan"
  
"km" => "application/x-koan"
  
"kp" => "application/x-koan"
  
"kt" => "application/x-koan"
  
"latex" => "application/x-latex"
  
"lha" => "application/octet-stream"
  
"lsf" => "video/x-la-asf"
  
"lsx" => "video/x-la-asf"
  
"lzh" => "application/octet-stream"
  
"m" => "application/x-troff-m"
  
"m13" => "application/x-msmediaview"
  
"m14" => "application/x-msmediaview"
  
"m3u" => "audio/x-mpegurl"
  
"m4a" => "audio/mp4a-latm"
  
"m4b" => "audio/mp4a-latm"
  
"m4p" => "audio/mp4a-latm"
  
"m4u" => "video/vnd.mpegurl"
  
"m4v" => "video/x-m4v"
  
"mac" => "image/x-macpaint"
  
"man" => "application/x-troff-man"
  
"mathml" => "application/mathml+xml"
  
"mdb" => "application/x-msaccess"
  
"me" => "application/x-troff-me"
  
"meh" => "model/meh"
  
"mesh" => "model/mesh"
  
"mh" => "model/meh"
  
"mht" => "message/rfc822"
  
"mhtml" => "message/rfc822"
  
"mi" => "application/mil"
  
"mid" => "audio/mid"
  
"midi" => "audio/midi"
  
"mif" => "application/vnd.mif"
  
"mil" => "application/mil"
  
"mny" => "application/x-msmoney"
  
"mov" => "video/quicktime"
  
"movie" => "video/x-sgi-movie"
  
"mp2" => "video/mpeg"
  
"mp3" => "audio/mpeg"
  
"mp4" => "video/mp4"
  
"mpa" => "video/mpeg"
  
"mpe" => "video/mpeg"
  
"mpeg" => "video/mpeg"
  
"mpg" => "video/mpeg"
  
"mpga" => "audio/mpeg"
  
"mpp" => "application/vnd.ms-project"
  
"mpv2" => "video/mpeg"
  
"ms" => "application/x-troff-ms"
  
"msh" => "model/mesh"
  
"mvb" => "application/x-msmediaview"
  
"mxu" => "video/vnd.mpegurl"
  
"nc" => "application/x-netcdf"
  
"nd" => "audio/baic"
  
"nws" => "message/rfc822"
  
"o" => "application/octet-tream"
  
"oda" => "application/oda"
  
"ogg" => "application/ogg"
  
"p" => "application/potcript"
  
"p10" => "application/pkcs10"
  
"p12" => "application/x-pkcs12"
  
"p7b" => "application/x-pkcs7-certificates"
  
"p7c" => "application/x-pkcs7-mime"
  
"p7m" => "application/x-pkcs7-mime"
  
"p7r" => "application/x-pkcs7-certreqresp"
  
"p7s" => "application/x-pkcs7-signature"
  
"pbm" => "image/x-portable-bitmap"
  
"pct" => "image/pict"
  
"pdb" => "chemical/x-pdb"
  
"pdf" => "application/pdf"
  
"pfx" => "application/x-pkcs12"
  
"pgm" => "image/x-portable-graymap"
  
"pgn" => "application/x-chess-pgn"
  
"php" => "text/php"
  
"php3" => "application/x-httpd-php"
  
"php4" => "application/x-httpd-php"
  
"php5" => "application/x-httpd-php"
  
"pic" => "image/pict"
  
"pict" => "image/pict"
  
"pko" => "application/ynd.ms-pkipko"
  
"pl" => "application/x-futureplah"
  
"pma" => "application/x-perfmon"
  
"pmc" => "application/x-perfmon"
  
"pml" => "application/x-perfmon"
  
"pmr" => "application/x-perfmon"
  
"pmw" => "application/x-perfmon"
  
"png" => "image/png"
  
"pnm" => "image/x-portable-anymap"
  
"pnt" => "image/x-macpaint"
  
"pntg" => "image/x-macpaint"
  
"pot," => "application/vnd.ms-powerpoint"
  
"ppm" => "image/x-portable-pixmap"
  
"pps" => "application/vnd.ms-powerpoint"
  
"ppt" => "application/vnd.ms-powerpoint"
  
"prf" => "application/pics-rules"
  
"ps" => "application/postscript"
  
"pub" => "application/x-mspublisher"
  
"qt" => "video/quicktime"
  
"qti" => "image/x-quicktime"
  
"qtif" => "image/x-quicktime"
  
"ra" => "audio/x-pn-realaudio"
  
"ram" => "audio/x-pn-realaudio"
  
"rar" => "application/x-rar-compressed"
  
"ras" => "image/x-cmu-raster"
  
"rc" => "application/x-wai-ource"
  
"rdf" => "application/rdf+xml"
  
"rgb" => "image/x-rgb"
  
"rm" => "audio/x-pn-realaudio"
  
"rmi" => "audio/mid"
  
"roff" => "application/x-troff"
  
"rpm" => "audio/x-pn-realaudio-plugin"
  
"rtf" => "application/rtf"
  
"rtx" => "text/richtext"
  
"scd" => "application/x-msschedule"
  
"sct" => "text/scriptlet"
  
"setpay" => "application/set-payment-initiation"
  
"setreg" => "application/set-registration-initiation"
  
"sgm" => "text/sgml"
  
"sgml" => "text/sgml"
  
"sh" => "application/x-sh"
  
"shar" => "application/x-shar"
  
"silo" => "model/mesh"
  
"sit" => "application/x-stuffit"
  
"skd" => "application/x-koan"
  
"skm" => "application/x-koan"
  
"skp" => "application/x-koan"
  
"skt" => "application/x-koan"
  
"smi" => "application/smil"
  
"smil" => "application/smil"
  
"snd" => "audio/basic"
  
"so" => "application/octet-stream"
  
"spc" => "application/x-pkcs7-certificates"
  
"spl" => "application/futuresplash"
  
"src" => "application/x-wais-source"
  
"sst" => "application/vnd.ms-pkicertstore"
  
"stl" => "application/vnd.ms-pkistl"
  
"stm" => "text/html"
  
"sv4cpio" => "application/x-sv4cpio"
  
"sv4crc" => "application/x-sv4crc"
  
"svg" => "image/svg+xml"
  
"swf" => "application/x-shockwave-flash"
  
"t" => "application/x-troff"
  
"tar" => "application/x-tar"
  
"tcl" => "application/x-tcl"
  
"tex" => "application/x-tex"
  
"texi" => "application/x-texinfo"
  
"texinfo" => "application/x-texinfo"
  
"tgz" => "application/x-compressed"
  
"tif" => "image/tiff"
  
"tiff" => "image/tiff"
  
"tr" => "application/x-troff"
  
"trm" => "application/x-msterminal"
  
"tsv" => "text/tab-separated-values"
  
"tv" => "text/tab-eparated-value"
  
"txt" => "text/plain"
  
"utar" => "application/x-utar"
  
"v4cpio" => "application/x-v4cpio"
  
"v4crc" => "application/x-v4crc"
  
"vcd" => "application/x-cdlink"
  
"vg" => "image/vg+xml"
  
"0" => "application/octet-stream"
  
"uls" => "text/iuls"
  
"ustar" => "application/x-ustar"
  
"vcf" => "text/x-vcard"
  
"vrml" => "x-world/x-vrml"
  
"vxml" => "application/voicexml+xml"
  
"wav" => "audio/x-wav"
  
"wbmp" => "image/vnd.wap.wbmp"
  
"wbmxl" => "application/vnd.wap.wbxml"
  
"wbxml" => "application/vnd.wap.wbxml"
  
"wcm" => "application/vnd.ms-works"
  
"wdb" => "application/vnd.ms-works"
  
"wf" => "application/x-hockwave-flah"
  
"wks" => "application/vnd.ms-works"
  
"wmf" => "application/x-msmetafile"
  
"wml" => "text/vnd.wap.wml"
  
"wmlc" => "application/vnd.wap.wmlc"
  
"wmls" => "text/vnd.wap.wmlscript"
  
"wmlsc" => "application/vnd.wap.wmlscriptc"
  
"wps" => "application/vnd.ms-works"
  
"wri" => "application/x-mswrite"
  
"wrl" => "x-world/x-vrml"
  
"wrz" => "x-world/x-vrml"
  
"xaf" => "x-world/x-vrml"
  
"xbm" => "image/x-xbitmap"
  
"xht" => "application/xhtml+xml"
  
"xhtml" => "application/xhtml+xml"
  
"xl" => "application/xml"
  
"xla" => "application/vnd.ms-excel"
  
"xlc" => "application/vnd.ms-excel"
  
"xlm" => "application/vnd.ms-excel"
  
"xls" => "application/vnd.ms-excel"
  
"xlt" => "application/vnd.ms-excel"
  
"xlw" => "application/vnd.ms-excel"
  
"xml" => "text/xml"
  
"xof" => "x-world/x-vrml"
  
"xpm" => "image/x-xpixmap"
  
"xsl" => "text/xml"
  
"xul" => "application/vnd.mozilla.xul+xml"
  
"xwd" => "image/x-xwindowdump"
  
"xyz" => "chemical/x-xyz"
  
"z" => "application/x-compress"
  
"zip" => "application/zip"
  
"323" => "text/h323"
);
 
$mimetype $mimes[$ext];
 if(empty(
$mimetypes)){
  
$mimetype 'application/octet-stream';
 }
 return 
$mimetype;
}
?>