| <?php |
| /** |
| * This program is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License as published by |
| * the Free Software Foundation; either version 2 of the License, or |
| * (at your option) any later version. |
| * |
| * This program is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| * GNU General Public License for more details. |
| * |
| * You should have received a copy of the GNU General Public License along |
| * with this program; if not, write to the Free Software Foundation, Inc., |
| * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
| * http://www.gnu.org/copyleft/gpl.html |
| * |
| * @file |
| */ |
| |
| namespace Wikimedia\Mime; |
| |
| /** |
| * Map of MIME types to file extensions and media types. |
| * |
| * @internal |
| * @ingroup Mime |
| */ |
| class MimeMap { |
| /** @var array Map of MIME types to an array of file extensions */ |
| public const MIME_EXTENSIONS = [ |
| 'application/ogg' => [ 'ogx', 'ogg', 'ogm', 'ogv', 'oga', 'spx', 'opus' ], |
| 'application/pdf' => [ 'pdf' ], |
| 'application/vnd.apple.mpegurl' => [ 'm3u8', 'm3u' ], |
| 'application/vnd.ms-opentype' => [ 'otf' ], |
| 'application/vnd.oasis.opendocument.chart' => [ 'odc' ], |
| 'application/vnd.oasis.opendocument.chart-template' => [ 'otc' ], |
| 'application/vnd.oasis.opendocument.database' => [ 'odb' ], |
| 'application/vnd.oasis.opendocument.formula' => [ 'odf' ], |
| 'application/vnd.oasis.opendocument.formula-template' => [ 'otf' ], |
| 'application/vnd.oasis.opendocument.graphics' => [ 'odg' ], |
| 'application/vnd.oasis.opendocument.graphics-template' => [ 'otg' ], |
| 'application/vnd.oasis.opendocument.image' => [ 'odi' ], |
| 'application/vnd.oasis.opendocument.image-template' => [ 'oti' ], |
| 'application/vnd.oasis.opendocument.presentation' => [ 'odp' ], |
| 'application/vnd.oasis.opendocument.presentation-template' => [ 'otp' ], |
| 'application/vnd.oasis.opendocument.spreadsheet' => [ 'ods' ], |
| 'application/vnd.oasis.opendocument.spreadsheet-template' => [ 'ots' ], |
| 'application/vnd.oasis.opendocument.text' => [ 'odt' ], |
| 'application/vnd.oasis.opendocument.text-master' => [ 'otm', 'odm' ], |
| 'application/vnd.oasis.opendocument.text-template' => [ 'ott' ], |
| 'application/vnd.oasis.opendocument.text-web' => [ 'oth' ], |
| 'application/javascript' => [ 'js' ], |
| 'application/x-mpegurl' => [ 'm3u', 'm3u8' ], |
| 'application/x-shockwave-flash' => [ 'swf' ], |
| 'audio/midi' => [ 'mid', 'midi', 'kar' ], |
| 'audio/mpeg' => [ 'mpga', 'mpa', 'mp2', 'mp3' ], |
| 'audio/x-aiff' => [ 'aif', 'aiff', 'aifc' ], |
| 'audio/x-wav' => [ 'wav' ], |
| 'audio/ogg' => [ 'oga', 'spx', 'ogg', 'opus' ], |
| 'audio/opus' => [ 'opus', 'ogg', 'oga', 'spx' ], |
| 'image/x-bmp' => [ 'bmp' ], |
| 'image/gif' => [ 'gif' ], |
| 'image/jpeg' => [ 'jpeg', 'jpg', 'jpe', 'jps' ], |
| 'image/png' => [ 'png', 'apng' ], |
| 'image/svg+xml' => [ 'svg' ], |
| 'image/svg' => [ 'svg' ], |
| 'image/tiff' => [ 'tiff', 'tif' ], |
| 'image/vnd.djvu' => [ 'djvu', 'djv' ], |
| 'image/x.djvu' => [ 'djvu' ], |
| 'image/x-djvu' => [ 'djvu' ], |
| 'image/x-portable-pixmap' => [ 'ppm' ], |
| 'image/x-xcf' => [ 'xcf' ], |
| 'text/plain' => [ 'txt' ], |
| 'text/html' => [ 'html', 'htm' ], |
| 'video/ogg' => [ 'ogv', 'ogm', 'ogg' ], |
| 'video/mpeg' => [ 'mpg', 'mpeg', 'mpe' ], |
| 'application/acad' => [ 'dwg' ], |
| 'application/andrew-inset' => [ 'ez' ], |
| 'application/mac-binhex40' => [ 'hqx' ], |
| 'application/mac-compactpro' => [ 'cpt' ], |
| 'application/mathml+xml' => [ 'mathml' ], |
| 'application/msword' => [ 'doc', 'dot' ], |
| 'application/octet-stream' => [ 'bin', 'dms', 'lha', 'lzh', 'exe', 'class', 'so', 'dll' ], |
| 'application/oda' => [ 'oda' ], |
| 'application/postscript' => [ 'ai', 'eps', 'ps' ], |
| 'application/rdf+xml' => [ 'rdf', 'owl' ], |
| 'application/smil' => [ 'smi', 'smil' ], |
| 'application/srgs' => [ 'gram' ], |
| 'application/srgs+xml' => [ 'grxml' ], |
| 'application/vnd.mif' => [ 'mif' ], |
| 'application/vnd.ms-excel' => [ 'xls', 'xlt', 'xla' ], |
| 'application/vnd.ms-powerpoint' => [ 'ppt', 'pot', 'pps', 'ppa' ], |
| 'application/vnd.wap.wbxml' => [ 'wbxml' ], |
| 'application/vnd.wap.wmlc' => [ 'wmlc' ], |
| 'application/vnd.wap.wmlscriptc' => [ 'wmlsc' ], |
| 'application/voicexml+xml' => [ 'vxml' ], |
| 'application/x-7z-compressed' => [ '7z' ], |
| 'application/x-bcpio' => [ 'bcpio' ], |
| 'application/x-bzip' => [ 'bz' ], |
| 'application/x-bzip2' => [ 'bz2' ], |
| 'application/x-cdlink' => [ 'vcd' ], |
| 'application/x-chess-pgn' => [ 'pgn' ], |
| 'application/x-cpio' => [ 'cpio' ], |
| 'application/x-csh' => [ 'csh' ], |
| 'application/x-dia-diagram' => [ 'dia' ], |
| 'application/x-director' => [ 'dcr', 'dir', 'dxr' ], |
| 'application/x-dvi' => [ 'dvi' ], |
| 'application/x-futuresplash' => [ 'spl' ], |
| 'application/x-gtar' => [ 'gtar', 'tar' ], |
| 'application/x-gzip' => [ 'gz' ], |
| 'application/x-hdf' => [ 'hdf' ], |
| 'application/x-jar' => [ 'jar' ], |
| 'application/json' => [ 'json' ], |
| 'application/x-koan' => [ 'skp', 'skd', 'skt', 'skm' ], |
| 'application/x-latex' => [ 'latex' ], |
| 'application/x-netcdf' => [ 'nc', 'cdf' ], |
| 'application/x-sh' => [ 'sh' ], |
| 'application/x-shar' => [ 'shar' ], |
| 'application/x-stuffit' => [ 'sit' ], |
| 'application/x-sv4cpio' => [ 'sv4cpio' ], |
| 'application/x-sv4crc' => [ 'sv4crc' ], |
| 'application/x-tar' => [ 'tar' ], |
| 'application/x-tcl' => [ 'tcl' ], |
| 'application/x-tex' => [ 'tex' ], |
| 'application/x-texinfo' => [ 'texinfo', 'texi' ], |
| 'application/x-troff' => [ 't', 'tr', 'roff' ], |
| 'application/x-troff-man' => [ 'man' ], |
| 'application/x-troff-me' => [ 'me' ], |
| 'application/x-troff-ms' => [ 'ms' ], |
| 'application/x-ustar' => [ 'ustar' ], |
| 'application/x-wais-source' => [ 'src' ], |
| 'application/x-xpinstall' => [ 'xpi' ], |
| 'application/xhtml+xml' => [ 'xhtml', 'xht' ], |
| 'application/xslt+xml' => [ 'xslt' ], |
| 'application/xml' => [ 'xml', 'xsl', 'xsd', 'kml' ], |
| 'application/xml-dtd' => [ 'dtd' ], |
| 'application/zip' => |
| [ 'zip', 'jar', 'xpi', 'sxc', 'stc', 'sxd', 'std', 'sxi', 'sti', 'sxm', 'stm', 'sxw', 'stw' ], |
| 'application/x-rar' => [ 'rar' ], |
| 'font/collection' => [ 'ttc' ], |
| 'font/otf' => [ 'ttf', 'otf' ], |
| 'font/sfnt' => [ 'ttf', 'otf' ], |
| 'font/ttf' => [ 'ttf', 'otf' ], |
| 'application/font-sfnt' => [ 'ttf' ], |
| 'font/woff' => [ 'woff' ], |
| 'application/font-woff' => [ 'woff' ], |
| 'font/woff2' => [ 'woff2' ], |
| 'application/font-woff2' => [ 'woff2' ], |
| 'application/vnd.ms-fontobject' => [ 'eot' ], |
| 'application/x-font-ttf' => [ 'ttf' ], |
| 'audio/basic' => [ 'au', 'snd' ], |
| 'video/webm' => [ 'webm' ], |
| 'audio/webm' => [ 'webm' ], |
| 'audio/x-matroska' => [ 'mka', 'mkv' ], |
| 'audio/x-mpegurl' => [ 'm3u' ], |
| 'audio/x-ogg' => [ 'oga', 'ogg', 'spx', 'opus' ], |
| 'audio/x-pn-realaudio' => [ 'ram', 'rm' ], |
| 'audio/x-pn-realaudio-plugin' => [ 'rpm' ], |
| 'audio/x-realaudio' => [ 'ra' ], |
| 'audio/wav' => [ 'wav' ], |
| 'audio/x-flac' => [ 'flac' ], |
| 'audio/flac' => [ 'flac' ], |
| 'chemical/x-pdb' => [ 'pdb' ], |
| 'chemical/x-xyz' => [ 'xyz' ], |
| 'image/bmp' => [ 'bmp' ], |
| 'image/cgm' => [ 'cgm' ], |
| 'image/ief' => [ 'ief' ], |
| 'image/jp2' => [ 'jp2', 'j2k', 'jpg2' ], |
| 'image/jpx' => [ 'jpf', 'jpx' ], |
| 'image/vnd.microsoft.icon' => [ 'ico' ], |
| 'image/vnd.wap.wbmp' => [ 'wbmp' ], |
| 'image/webp' => [ 'webp' ], |
| 'image/x-cmu-raster' => [ 'ras' ], |
| 'image/x-icon' => [ 'ico' ], |
| 'image/x-jps' => [ 'jps' ], |
| 'image/x-ms-bmp' => [ 'bmp' ], |
| 'image/x-portable-anymap' => [ 'pnm' ], |
| 'image/x-portable-bitmap' => [ 'pbm' ], |
| 'image/x-portable-graymap' => [ 'pgm' ], |
| 'image/x-rgb' => [ 'rgb' ], |
| 'image/x-photoshop' => [ 'psd' ], |
| 'image/x-xbitmap' => [ 'xbm' ], |
| 'image/x-xpixmap' => [ 'xpm' ], |
| 'image/x-xwindowdump' => [ 'xwd' ], |
| 'model/iges' => [ 'igs', 'iges' ], |
| 'model/mesh' => [ 'msh', 'mesh', 'silo' ], |
| 'model/vrml' => [ 'wrl', 'vrml' ], |
| 'text/calendar' => [ 'ics', 'ifb' ], |
| 'text/css' => [ 'css' ], |
| 'text/csv' => [ 'csv' ], |
| 'text/richtext' => [ 'rtx' ], |
| 'text/rtf' => [ 'rtf' ], |
| 'text/sgml' => [ 'sgml', 'sgm' ], |
| 'text/tab-separated-values' => [ 'tsv' ], |
| 'text/vnd.wap.wml' => [ 'wml' ], |
| 'text/vnd.wap.wmlscript' => [ 'wmls' ], |
| 'text/xml' => [ 'xml', 'xsl', 'xslt', 'rss', 'rdf' ], |
| 'text/x-component' => [ 'htc' ], |
| 'text/x-setext' => [ 'etx' ], |
| 'text/x-sawfish' => [ 'jl' ], |
| 'video/mp4' => [ 'mp4', 'm4a', 'm4p', 'm4b', 'm4r', 'm4v' ], |
| 'audio/mp4' => [ 'm4a' ], |
| 'video/quicktime' => [ 'qt', 'mov' ], |
| 'video/vnd.mpegurl' => [ 'mxu' ], |
| 'video/x-flv' => [ 'flv' ], |
| 'video/x-matroska' => [ 'mkv', 'mka' ], |
| 'video/x-msvideo' => [ 'avi' ], |
| 'video/x-ogg' => [ 'ogv', 'ogm', 'ogg' ], |
| 'video/x-sgi-movie' => [ 'movie' ], |
| 'x-conference/x-cooltalk' => [ 'ice' ], |
| 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' => [ 'docx' ], |
| 'application/vnd.openxmlformats-officedocument.wordprocessingml.template' => [ 'dotx' ], |
| 'application/vnd.ms-word.document.macroenabled.12' => [ 'docm' ], |
| 'application/vnd.ms-word.template.macroenabled.12' => [ 'dotm' ], |
| 'application/vnd.openxmlformats-officedocument.presentationml.template' => [ 'potx' ], |
| 'application/vnd.openxmlformats-officedocument.presentationml.slideshow' => [ 'ppsx' ], |
| 'application/vnd.openxmlformats-officedocument.presentationml.presentation' => [ 'pptx' ], |
| 'application/vnd.ms-powerpoint.addin.macroenabled.12' => [ 'ppam' ], |
| 'application/vnd.ms-powerpoint.presentation.macroenabled.12' => [ 'pptm', 'potm' ], |
| 'application/vnd.ms-powerpoint.slideshow.macroenabled.12' => [ 'ppsm' ], |
| 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' => [ 'xlsx' ], |
| 'application/vnd.openxmlformats-officedocument.spreadsheetml.template' => [ 'xltx' ], |
| 'application/vnd.ms-excel.sheet.macroenabled.12' => [ 'xlsm' ], |
| 'application/vnd.ms-excel.template.macroenabled.12' => [ 'xltm' ], |
| 'application/vnd.ms-excel.addin.macroenabled.12' => [ 'xlam' ], |
| 'application/vnd.ms-excel.sheet.binary.macroenabled.12' => [ 'xlsb' ], |
| 'model/vnd.dwfx+xps' => [ 'dwfx' ], |
| 'application/vnd.ms-xpsdocument' => [ 'xps' ], |
| 'chemical/x-mdl-molfile' => [ 'mol' ], |
| 'chemical/x-mdl-sdfile' => [ 'sdf' ], |
| 'chemical/x-mdl-rxnfile' => [ 'rxn' ], |
| 'chemical/x-mdl-rdfile' => [ 'rd' ], |
| 'chemical/x-mdl-rgfile' => [ 'rg' ], |
| 'application/x-amf' => [ 'amf' ], |
| 'application/sla' => [ 'stl' ], |
| 'application/wasm' => [ 'wasm' ], |
| |
| // Vague pseudo-types should be at the end so that they don't take |
| // precedence over the more specific types above in getMimeTypesFromExtension() |
| 'application/x-opc+zip' => [ |
| 'docx', 'dotx', 'docm', 'dotm', 'potx', 'ppsx', 'pptx', 'ppam', 'pptm', 'potm', 'ppsm', |
| 'xlsx', 'xltx', 'xlsm', 'xltm', 'xlam', 'xlsb', 'dwfx', 'xps' |
| ], |
| 'application/vnd.oasis.opendocument' => [ |
| 'odt', 'ott', 'odg', 'otg', 'odp', 'otp', 'ods', 'ots', 'odc', 'otc', |
| 'odi', 'oti', 'odf', 'otf', 'odm', 'oth', |
| ] |
| ]; |
| |
| /** @var array Map of built-in media types and their associated MIME types */ |
| public const MEDIA_TYPES = [ |
| MEDIATYPE_OFFICE => [ |
| 'application/pdf', |
| 'application/vnd.oasis.opendocument.chart', |
| 'application/vnd.oasis.opendocument.chart-template', |
| 'application/vnd.oasis.opendocument.database', |
| 'application/vnd.oasis.opendocument.formula', |
| 'application/vnd.oasis.opendocument.formula-template', |
| 'application/vnd.oasis.opendocument.graphics', |
| 'application/vnd.oasis.opendocument.graphics-template', |
| 'application/vnd.oasis.opendocument.image', |
| 'application/vnd.oasis.opendocument.image-template', |
| 'application/vnd.oasis.opendocument.presentation', |
| 'application/vnd.oasis.opendocument.presentation-template', |
| 'application/vnd.oasis.opendocument.spreadsheet', |
| 'application/vnd.oasis.opendocument.spreadsheet-template', |
| 'application/vnd.oasis.opendocument.text', |
| 'application/vnd.oasis.opendocument.text-template', |
| 'application/vnd.oasis.opendocument.text-master', |
| 'application/vnd.oasis.opendocument.text-web', |
| 'application/pdf', |
| 'application/acrobat', |
| 'application/msword', |
| 'application/vnd.ms-excel', |
| 'application/vnd.ms-powerpoint', |
| 'application/x-director', |
| 'image/vnd.djvu', |
| 'image/x.djvu', |
| 'image/x-djvu', |
| 'text/rtf', |
| 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', |
| 'application/vnd.openxmlformats-officedocument.wordprocessingml.template', |
| 'application/vnd.ms-word.document.macroenabled.12', |
| 'application/vnd.ms-word.template.macroenabled.12', |
| 'application/vnd.openxmlformats-officedocument.presentationml.template', |
| 'application/vnd.openxmlformats-officedocument.presentationml.slideshow', |
| 'application/vnd.openxmlformats-officedocument.presentationml.presentation', |
| 'application/vnd.ms-powerpoint.addin.macroenabled.12', |
| 'application/vnd.ms-powerpoint.presentation.macroenabled.12', |
| 'application/vnd.ms-powerpoint.presentation.macroenabled.12', |
| 'application/vnd.ms-powerpoint.slideshow.macroenabled.12', |
| 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', |
| 'application/vnd.openxmlformats-officedocument.spreadsheetml.template', |
| 'application/vnd.ms-excel.sheet.macroenabled.12', |
| 'application/vnd.ms-excel.template.macroenabled.12', |
| 'application/vnd.ms-excel.addin.macroenabled.12', |
| 'application/vnd.ms-excel.sheet.binary.macroenabled.12', |
| ], |
| MEDIATYPE_EXECUTABLE => [ |
| 'application/javascript', |
| 'text/javascript', |
| 'application/x-javascript', |
| 'application/javascript', |
| 'text/javascript', |
| 'application/x-javascript', |
| 'application/x-ecmascript', |
| 'text/ecmascript', |
| 'application/x-bash', |
| 'application/x-sh', |
| 'application/x-csh', |
| 'application/x-tcsh', |
| 'application/x-tcl', |
| 'application/x-perl', |
| 'application/x-python', |
| 'application/wasm', |
| ], |
| MEDIATYPE_MULTIMEDIA => [ |
| 'application/x-shockwave-flash', |
| 'application/ogg', |
| 'application/vnd.apple.mpegurl', |
| 'application/x-mpegurl', |
| 'audio/ogg', |
| 'video/ogg', |
| 'application/ogg', |
| 'application/x-ogg', |
| 'audio/ogg', |
| 'audio/x-ogg', |
| 'video/ogg', |
| 'video/x-ogg', |
| 'application/x-shockwave-flash', |
| 'audio/x-pn-realaudio-plugin', |
| 'model/iges', |
| 'model/mesh', |
| 'model/vrml', |
| 'video/quicktime', |
| 'video/x-msvideo', |
| ], |
| MEDIATYPE_AUDIO => [ |
| 'audio/midi', |
| 'audio/x-aiff', |
| 'audio/x-wav', |
| 'audio/mp3', |
| 'audio/mpeg', |
| 'audio/mpeg', |
| 'audio/mp3', |
| 'audio/mpeg3', |
| 'audio/mp4', |
| 'audio/wav', |
| 'audio/x-wav', |
| 'audio/wave', |
| 'audio/midi', |
| 'audio/mid', |
| 'audio/basic', |
| 'audio/ogg', |
| 'audio/opus', |
| 'audio/x-aiff', |
| 'audio/x-pn-realaudio', |
| 'audio/x-realaudio', |
| 'audio/webm', |
| 'audio/x-matroska', |
| 'audio/x-flac', |
| 'audio/flac', |
| ], |
| MEDIATYPE_BITMAP => [ |
| 'image/x-bmp', |
| 'image/x-ms-bmp', |
| 'image/bmp', |
| 'image/gif', |
| 'image/jpeg', |
| 'image/png', |
| 'image/tiff', |
| 'image/vnd.djvu', |
| 'image/x-xcf', |
| 'image/x-portable-pixmap', |
| 'image/gif', |
| 'image/png', |
| 'image/x-png', |
| 'image/ief', |
| 'image/jpeg', |
| 'image/x-jps', |
| 'image/pjpeg', |
| 'image/jp2', |
| 'image/jpx', |
| 'image/xbm', |
| 'image/tiff', |
| 'image/x-icon', |
| 'image/x-ico', |
| 'image/vnd.microsoft.icon', |
| 'image/x-rgb', |
| 'image/x-portable-pixmap', |
| 'image/x-portable-graymap', |
| 'image/x-portable-greymap', |
| 'image/x-bmp', |
| 'image/x-ms-bmp', |
| 'image/bmp', |
| 'application/x-bmp', |
| 'application/bmp', |
| 'image/x-photoshop', |
| 'image/psd', |
| 'image/x-psd', |
| 'image/photoshop', |
| 'image/vnd.adobe.photoshop', |
| 'image/webp', |
| ], |
| MEDIATYPE_DRAWING => [ |
| 'image/svg+xml', |
| 'image/svg+xml', |
| 'application/svg+xml', |
| 'application/svg', |
| 'image/svg', |
| 'application/postscript', |
| 'application/x-latex', |
| 'application/x-tex', |
| 'application/x-dia-diagram', |
| 'application/acad', |
| 'application/x-acad', |
| 'application/autocad_dwg', |
| 'image/x-dwg', |
| 'application/dwg', |
| 'application/x-dwg', |
| 'application/x-autocad', |
| 'image/vnd.dwg', |
| 'drawing/dwg', |
| 'chemical/x-mdl-molfile', |
| 'chemical/x-mdl-sdfile', |
| 'chemical/x-mdl-rxnfile', |
| 'chemical/x-mdl-rdfile', |
| 'chemical/x-mdl-rgfile', |
| ], |
| MEDIATYPE_TEXT => [ |
| 'text/plain', |
| 'text/html', |
| 'text/plain', |
| 'text/html', |
| 'application/xhtml+xml', |
| 'application/xml', |
| 'text/xml', |
| 'text', |
| 'application/json', |
| 'text/csv', |
| 'text/tab-separated-values', |
| ], |
| MEDIATYPE_VIDEO => [ |
| 'video/ogg', |
| 'video/mpeg', |
| 'video/mpeg', |
| 'application/mpeg', |
| 'video/ogg', |
| 'video/x-sgi-video', |
| 'video/x-flv', |
| 'video/webm', |
| 'video/x-matroska', |
| 'video/mp4', |
| ], |
| MEDIATYPE_UNKNOWN => [ |
| 'unknown/unknown', |
| 'application/octet-stream', |
| 'application/x-empty', |
| ], |
| MEDIATYPE_ARCHIVE => [ |
| 'application/zip', |
| 'application/x-zip', |
| 'application/x-gzip', |
| 'application/x-bzip', |
| 'application/x-bzip2', |
| 'application/x-tar', |
| 'application/x-stuffit', |
| 'application/x-opc+zip', |
| 'application/x-7z-compressed', |
| ], |
| MEDIATYPE_3D => [ |
| 'application/sla', |
| ], |
| ]; |
| |
| /** @var array Map of variant MIME types to their canonical MIME type */ |
| public const MIME_TYPE_ALIASES = [ |
| 'text/javascript' => 'application/javascript', |
| 'application/x-javascript' => 'application/javascript', |
| 'audio/mpeg' => 'audio/mp3', |
| 'audio/ogg' => 'application/ogg', |
| 'video/ogg' => 'application/ogg', |
| 'image/x-ms-bmp' => 'image/x-bmp', |
| 'image/bmp' => 'image/x-bmp', |
| 'application/octet-stream' => 'unknown/unknown', |
| 'application/x-empty' => 'unknown/unknown', |
| 'image/x-png' => 'image/png', |
| 'image/pjpeg' => 'image/jpeg', |
| 'image/x-ico' => 'image/x-icon', |
| 'image/vnd.microsoft.icon' => 'image/x-icon', |
| 'image/x-portable-greymap' => 'image/x-portable-graymap', |
| 'application/x-bmp' => 'image/x-bmp', |
| 'application/bmp' => 'image/x-bmp', |
| 'image/psd' => 'image/x-photoshop', |
| 'image/x-psd' => 'image/x-photoshop', |
| 'image/photoshop' => 'image/x-photoshop', |
| 'image/vnd.adobe.photoshop' => 'image/x-photoshop', |
| 'application/svg+xml' => 'image/svg+xml', |
| 'application/svg' => 'image/svg+xml', |
| 'image/svg' => 'image/svg+xml', |
| 'audio/mp3' => 'audio/mpeg', |
| 'audio/mpeg3' => 'audio/mpeg', |
| 'audio/x-wav' => 'audio/wav', |
| 'audio/wave' => 'audio/wav', |
| 'audio/mid' => 'audio/midi', |
| 'application/mpeg' => 'video/mpeg', |
| 'application/x-ogg' => 'application/ogg', |
| 'audio/x-ogg' => 'application/ogg', |
| 'video/x-ogg' => 'application/ogg', |
| 'application/xhtml+xml' => 'text/html', |
| 'text/xml' => 'application/xml', |
| 'application/x-zip' => 'application/zip', |
| 'application/x-ecmascript' => 'application/javascript', |
| 'text/ecmascript' => 'application/javascript', |
| 'application/acrobat' => 'application/pdf', |
| 'image/x.djvu' => 'image/vnd.djvu', |
| 'image/x-djvu' => 'image/vnd.djvu', |
| 'application/x-acad' => 'application/acad', |
| 'application/autocad_dwg' => 'application/acad', |
| 'image/x-dwg' => 'application/acad', |
| 'application/dwg' => 'application/acad', |
| 'application/x-dwg' => 'application/acad', |
| 'application/x-autocad' => 'application/acad', |
| 'image/vnd.dwg' => 'application/acad', |
| 'drawing/dwg' => 'application/acad', |
| 'image/jpeg2000' => 'image/jp2', |
| 'image/jpeg2000-image' => 'image/jp2', |
| 'image/x-jpeg2000-image' => 'image/jp2', |
| 'application/csv' => 'text/csv', |
| 'application/x-csv' => 'text/csv', |
| 'text/x-csv' => 'text/csv', |
| 'text/comma-separated-values' => 'text/csv', |
| 'text/x-comma-separated-values' => 'text/csv', |
| ]; |
| } |