diff --git a/src/Symfony/Component/Mime/MimeTypes.php b/src/Symfony/Component/Mime/MimeTypes.php index aa27c3d8c9..4f693e2b74 100644 --- a/src/Symfony/Component/Mime/MimeTypes.php +++ b/src/Symfony/Component/Mime/MimeTypes.php @@ -1654,6 +1654,7 @@ final class MimeTypes implements MimeTypesInterface 'appimage' => ['application/vnd.appimage', 'application/x-iso9660-appimage'], 'application' => ['application/x-ms-application'], 'apr' => ['application/vnd.lotus-approach'], + 'aps' => ['application/postscript'], 'ar' => ['application/x-archive'], 'arc' => ['application/x-freearc'], 'arj' => ['application/x-arj'], @@ -1706,7 +1707,7 @@ final class MimeTypes implements MimeTypesInterface 'bsdiff' => ['application/x-bsdiff'], 'btif' => ['image/prs.btif'], 'bz' => ['application/x-bzip', 'application/x-bzip2'], - 'bz2' => ['application/x-bzip', 'application/x-bzip2'], + 'bz2' => ['application/x-bz2', 'application/x-bzip', 'application/x-bzip2'], 'c' => ['text/x-c', 'text/x-csrc'], 'c++' => ['text/x-c++src'], 'c11amc' => ['application/vnd.cluetrust.cartomobile-config'], @@ -1957,7 +1958,7 @@ final class MimeTypes implements MimeTypesInterface 'flc' => ['video/fli', 'video/x-fli', 'video/x-flic'], 'fli' => ['video/fli', 'video/x-fli', 'video/x-flic'], 'flo' => ['application/vnd.micrografx.flo'], - 'flv' => ['application/x-flash-video', 'flv-application/octet-stream', 'video/flv', 'video/x-flv'], + 'flv' => ['video/x-flv', 'application/x-flash-video', 'flv-application/octet-stream', 'video/flv'], 'flw' => ['application/vnd.kde.kivio', 'application/x-kivio'], 'flx' => ['text/vnd.fmi.flexstor'], 'fly' => ['text/vnd.fly'], @@ -2042,7 +2043,7 @@ final class MimeTypes implements MimeTypesInterface 'gvp' => ['text/google-video-pointer', 'text/x-google-video-pointer'], 'gxf' => ['application/gxf'], 'gxt' => ['application/vnd.geonext'], - 'gz' => ['application/gzip', 'application/x-gzip'], + 'gz' => ['application/x-gzip', 'application/gzip'], 'h' => ['text/x-c', 'text/x-chdr'], 'h++' => ['text/x-c++hdr'], 'h261' => ['video/h261'], @@ -2065,7 +2066,7 @@ final class MimeTypes implements MimeTypesInterface 'hpid' => ['application/vnd.hp-hpid'], 'hpp' => ['text/x-c++hdr'], 'hps' => ['application/vnd.hp-hps'], - 'hqx' => ['application/mac-binhex40'], + 'hqx' => ['application/stuffit', 'application/mac-binhex40'], 'hs' => ['text/x-haskell'], 'htke' => ['application/vnd.kenameaapp'], 'htm' => ['text/html'], @@ -2126,7 +2127,7 @@ final class MimeTypes implements MimeTypesInterface 'j2k' => ['image/x-jp2-codestream'], 'jad' => ['text/vnd.sun.j2me.app-descriptor'], 'jam' => ['application/vnd.jam'], - 'jar' => ['application/java-archive', 'application/x-jar', 'application/x-java-archive'], + 'jar' => ['application/x-java-archive', 'application/java-archive', 'application/x-jar'], 'java' => ['text/x-java', 'text/x-java-source'], 'jceks' => ['application/x-java-jce-keystore'], 'jisp' => ['application/vnd.jisp'], @@ -2148,7 +2149,7 @@ final class MimeTypes implements MimeTypesInterface 'jpr' => ['application/x-jbuilder-project'], 'jpx' => ['application/x-jbuilder-project', 'image/jpx'], 'jrd' => ['application/jrd+json'], - 'js' => ['application/javascript', 'application/x-javascript', 'text/javascript'], + 'js' => ['text/javascript', 'application/javascript', 'application/x-javascript'], 'jsm' => ['application/javascript', 'application/x-javascript', 'text/javascript'], 'json' => ['application/json'], 'json-patch' => ['application/json-patch+json'], @@ -2237,10 +2238,10 @@ final class MimeTypes implements MimeTypesInterface 'm2ts' => ['video/mp2t'], 'm2v' => ['video/mpeg'], 'm3a' => ['audio/mpeg'], - 'm3u' => ['application/m3u', 'application/vnd.apple.mpegurl', 'audio/m3u', 'audio/mpegurl', 'audio/x-m3u', 'audio/x-mp3-playlist', 'audio/x-mpegurl'], + 'm3u' => ['audio/x-mpegurl', 'application/m3u', 'application/vnd.apple.mpegurl', 'audio/m3u', 'audio/mpegurl', 'audio/x-m3u', 'audio/x-mp3-playlist'], 'm3u8' => ['application/m3u', 'application/vnd.apple.mpegurl', 'audio/m3u', 'audio/mpegurl', 'audio/x-m3u', 'audio/x-mp3-playlist', 'audio/x-mpegurl'], 'm4' => ['application/x-m4'], - 'm4a' => ['audio/m4a', 'audio/mp4', 'audio/x-m4a'], + 'm4a' => ['audio/mp4', 'audio/m4a', 'audio/x-m4a'], 'm4b' => ['audio/x-m4b'], 'm4r' => ['audio/x-m4r'], 'm4u' => ['video/vnd.mpegurl', 'video/x-mpegurl'], @@ -2264,7 +2265,7 @@ final class MimeTypes implements MimeTypesInterface 'mcd' => ['application/vnd.mcd'], 'mcurl' => ['text/vnd.curl.mcurl'], 'md' => ['text/markdown', 'text/x-markdown'], - 'mdb' => ['application/mdb', 'application/msaccess', 'application/vnd.ms-access', 'application/vnd.msaccess', 'application/x-mdb', 'application/x-msaccess', 'zz-application/zz-winassoc-mdb'], + 'mdb' => ['application/x-msaccess', 'application/mdb', 'application/msaccess', 'application/vnd.ms-access', 'application/vnd.msaccess', 'application/x-mdb', 'zz-application/zz-winassoc-mdb'], 'mdi' => ['image/vnd.ms-modi'], 'mdx' => ['application/x-genesis-32x-rom'], 'me' => ['text/troff', 'text/x-troff-me'], @@ -2321,7 +2322,7 @@ final class MimeTypes implements MimeTypesInterface 'mp2' => ['audio/mp2', 'audio/mpeg', 'audio/x-mp2', 'video/mpeg', 'video/mpeg-system', 'video/x-mpeg', 'video/x-mpeg-system', 'video/x-mpeg2'], 'mp21' => ['application/mp21'], 'mp2a' => ['audio/mpeg'], - 'mp3' => ['audio/mp3', 'audio/mpeg', 'audio/x-mp3', 'audio/x-mpeg', 'audio/x-mpg'], + 'mp3' => ['audio/mpeg', 'audio/mp3', 'audio/x-mp3', 'audio/x-mpeg', 'audio/x-mpg'], 'mp4' => ['video/mp4', 'video/mp4v-es', 'video/x-m4v'], 'mp4a' => ['audio/mp4'], 'mp4s' => ['application/mp4'], @@ -2409,12 +2410,12 @@ final class MimeTypes implements MimeTypesInterface 'odc' => ['application/vnd.oasis.opendocument.chart'], 'odf' => ['application/vnd.oasis.opendocument.formula'], 'odft' => ['application/vnd.oasis.opendocument.formula-template'], - 'odg' => ['application/vnd.oasis.opendocument.graphics'], + 'odg' => ['vnd.oasis.opendocument.graphics', 'application/vnd.oasis.opendocument.graphics'], 'odi' => ['application/vnd.oasis.opendocument.image'], 'odm' => ['application/vnd.oasis.opendocument.text-master'], - 'odp' => ['application/vnd.oasis.opendocument.presentation'], - 'ods' => ['application/vnd.oasis.opendocument.spreadsheet'], - 'odt' => ['application/vnd.oasis.opendocument.text'], + 'odp' => ['vnd.oasis.opendocument.presentation', 'application/vnd.oasis.opendocument.presentation'], + 'ods' => ['vnd.oasis.opendocument.spreadsheet', 'application/vnd.oasis.opendocument.spreadsheet'], + 'odt' => ['vnd.oasis.opendocument.text', 'application/vnd.oasis.opendocument.text'], 'oga' => ['audio/ogg', 'audio/vorbis', 'audio/x-flac+ogg', 'audio/x-ogg', 'audio/x-oggflac', 'audio/x-speex+ogg', 'audio/x-vorbis', 'audio/x-vorbis+ogg'], 'ogg' => ['audio/ogg', 'audio/vorbis', 'audio/x-flac+ogg', 'audio/x-ogg', 'audio/x-oggflac', 'audio/x-speex+ogg', 'audio/x-vorbis', 'audio/x-vorbis+ogg', 'video/ogg', 'video/x-ogg', 'video/x-theora', 'video/x-theora+ogg'], 'ogm' => ['video/x-ogm', 'video/x-ogm+ogg'], @@ -2484,7 +2485,7 @@ final class MimeTypes implements MimeTypesInterface 'pcx' => ['image/vnd.zbrush.pcx', 'image/x-pcx'], 'pdb' => ['application/vnd.palm', 'application/x-aportisdoc', 'application/x-palm-database'], 'pdc' => ['application/x-aportisdoc'], - 'pdf' => ['application/acrobat', 'application/nappdf', 'application/pdf', 'application/x-pdf', 'image/pdf'], + 'pdf' => ['application/pdf', 'application/acrobat', 'application/nappdf', 'application/x-pdf', 'image/pdf'], 'pdf.bz2' => ['application/x-bzpdf'], 'pdf.gz' => ['application/x-gzpdf'], 'pdf.lz' => ['application/x-lzpdf'], @@ -2541,7 +2542,7 @@ final class MimeTypes implements MimeTypesInterface 'pps' => ['application/mspowerpoint', 'application/powerpoint', 'application/vnd.ms-powerpoint', 'application/x-mspowerpoint'], 'ppsm' => ['application/vnd.ms-powerpoint.slideshow.macroenabled.12'], 'ppsx' => ['application/vnd.openxmlformats-officedocument.presentationml.slideshow'], - 'ppt' => ['application/mspowerpoint', 'application/powerpoint', 'application/vnd.ms-powerpoint', 'application/x-mspowerpoint'], + 'ppt' => ['application/vnd.ms-powerpoint', 'application/mspowerpoint', 'application/powerpoint', 'application/x-mspowerpoint'], 'pptm' => ['application/vnd.ms-powerpoint.presentation.macroenabled.12'], 'pptx' => ['application/vnd.openxmlformats-officedocument.presentationml.presentation'], 'ppz' => ['application/mspowerpoint', 'application/powerpoint', 'application/vnd.ms-powerpoint', 'application/x-mspowerpoint'], @@ -2599,7 +2600,7 @@ final class MimeTypes implements MimeTypesInterface 'raf' => ['image/x-fuji-raf'], 'ram' => ['application/ram', 'audio/x-pn-realaudio'], 'raml' => ['application/raml+yaml'], - 'rar' => ['application/vnd.rar', 'application/x-rar', 'application/x-rar-compressed'], + 'rar' => ['application/x-rar-compressed', 'application/vnd.rar', 'application/x-rar'], 'ras' => ['image/x-cmu-raster'], 'raw' => ['image/x-panasonic-raw', 'image/x-panasonic-rw'], 'raw-disk-image' => ['application/x-raw-disk-image'], @@ -2708,7 +2709,7 @@ final class MimeTypes implements MimeTypesInterface 'silo' => ['model/mesh'], 'sis' => ['application/vnd.symbian.install'], 'sisx' => ['application/vnd.symbian.install', 'x-epoc/x-sisx-app'], - 'sit' => ['application/stuffit', 'application/x-sit', 'application/x-stuffit'], + 'sit' => ['application/x-stuffit', 'application/stuffit', 'application/x-sit'], 'sitx' => ['application/x-stuffitx'], 'siv' => ['application/sieve'], 'sk' => ['image/x-skencil'], @@ -2806,7 +2807,7 @@ final class MimeTypes implements MimeTypesInterface 't3' => ['application/x-t3vm-image'], 'taglet' => ['application/vnd.mynfc'], 'tao' => ['application/vnd.tao.intent-module-archive'], - 'tar' => ['application/x-gtar', 'application/x-tar'], + 'tar' => ['application/x-tar', 'application/x-gtar'], 'tar.Z' => ['application/x-tarz'], 'tar.bz' => ['application/x-bzip-compressed-tar'], 'tar.bz2' => ['application/x-bzip-compressed-tar'], @@ -2861,7 +2862,7 @@ final class MimeTypes implements MimeTypesInterface 'tsv' => ['text/tab-separated-values'], 'tta' => ['audio/tta', 'audio/x-tta'], 'ttc' => ['font/collection'], - 'ttf' => ['application/x-font-ttf', 'font/ttf'], + 'ttf' => ['application/x-font-truetype', 'application/x-font-ttf', 'font/ttf'], 'ttl' => ['text/turtle'], 'ttx' => ['application/x-font-ttx'], 'twd' => ['application/vnd.simtech-mindmapper'], @@ -2930,7 +2931,7 @@ final class MimeTypes implements MimeTypesInterface 'vb' => ['application/x-virtual-boy-rom'], 'vcard' => ['text/directory', 'text/vcard', 'text/x-vcard'], 'vcd' => ['application/x-cdlink'], - 'vcf' => ['text/directory', 'text/vcard', 'text/x-vcard'], + 'vcf' => ['text/x-vcard', 'text/directory', 'text/vcard'], 'vcg' => ['application/vnd.groove-vcard'], 'vcs' => ['application/ics', 'text/calendar', 'text/x-vcalendar'], 'vct' => ['text/directory', 'text/vcard', 'text/x-vcard'], @@ -2964,7 +2965,7 @@ final class MimeTypes implements MimeTypesInterface 'vxml' => ['application/voicexml+xml'], 'w3d' => ['application/x-director'], 'wad' => ['application/x-doom', 'application/x-doom-wad', 'application/x-wii-wad'], - 'wav' => ['audio/vnd.wave', 'audio/wav', 'audio/x-wav'], + 'wav' => ['audio/wav', 'audio/vnd.wave', 'audio/x-wav'], 'wax' => ['application/x-ms-asx', 'audio/x-ms-asx', 'audio/x-ms-wax', 'video/x-ms-wax', 'video/x-ms-wmx', 'video/x-ms-wvx'], 'wb1' => ['application/x-quattropro'], 'wb2' => ['application/x-quattropro'], @@ -2987,14 +2988,14 @@ final class MimeTypes implements MimeTypesInterface 'wkdownload' => ['application/x-partial-download'], 'wks' => ['application/lotus123', 'application/vnd.lotus-1-2-3', 'application/vnd.ms-works', 'application/wk1', 'application/x-123', 'application/x-lotus123', 'zz-application/zz-winassoc-123'], 'wm' => ['video/x-ms-wm'], - 'wma' => ['audio/wma', 'audio/x-ms-wma'], + 'wma' => ['audio/x-ms-wma', 'audio/wma'], 'wmd' => ['application/x-ms-wmd'], 'wmf' => ['application/wmf', 'application/x-msmetafile', 'application/x-wmf', 'image/wmf', 'image/x-win-metafile', 'image/x-wmf'], 'wml' => ['text/vnd.wap.wml'], 'wmlc' => ['application/vnd.wap.wmlc'], 'wmls' => ['text/vnd.wap.wmlscript'], 'wmlsc' => ['application/vnd.wap.wmlscriptc'], - 'wmv' => ['video/x-ms-wmv'], + 'wmv' => ['audio/x-ms-wmv', 'video/x-ms-wmv'], 'wmx' => ['application/x-ms-asx', 'audio/x-ms-asx', 'video/x-ms-wax', 'video/x-ms-wmx', 'video/x-ms-wvx'], 'wmz' => ['application/x-ms-wmz', 'application/x-msmetafile'], 'woff' => ['application/font-woff', 'application/x-font-woff', 'font/woff'], @@ -3067,7 +3068,7 @@ final class MimeTypes implements MimeTypesInterface 'xll' => ['application/msexcel', 'application/vnd.ms-excel', 'application/x-msexcel', 'zz-application/zz-winassoc-xls'], 'xlm' => ['application/msexcel', 'application/vnd.ms-excel', 'application/x-msexcel', 'zz-application/zz-winassoc-xls'], 'xlr' => ['application/vnd.ms-works'], - 'xls' => ['application/msexcel', 'application/vnd.ms-excel', 'application/x-msexcel', 'zz-application/zz-winassoc-xls'], + 'xls' => ['application/vnd.ms-excel', 'application/msexcel', 'application/x-msexcel', 'zz-application/zz-winassoc-xls'], 'xlsb' => ['application/vnd.ms-excel.sheet.binary.macroenabled.12'], 'xlsm' => ['application/vnd.ms-excel.sheet.macroenabled.12'], 'xlsx' => ['application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'], @@ -3116,7 +3117,7 @@ final class MimeTypes implements MimeTypesInterface 'z8' => ['application/x-zmachine'], 'zabw' => ['application/x-abiword'], 'zaz' => ['application/vnd.zzazz.deck+xml'], - 'zip' => ['application/x-zip', 'application/x-zip-compressed', 'application/zip'], + 'zip' => ['application/zip', 'application/x-zip', 'application/x-zip-compressed'], 'zir' => ['application/vnd.zul'], 'zirz' => ['application/vnd.zul'], 'zmm' => ['application/vnd.handheld-entertainment+xml'], diff --git a/src/Symfony/Component/Mime/Resources/bin/update_mime_types.php b/src/Symfony/Component/Mime/Resources/bin/update_mime_types.php index 1b101d0f3b..0e36f99616 100644 --- a/src/Symfony/Component/Mime/Resources/bin/update_mime_types.php +++ b/src/Symfony/Component/Mime/Resources/bin/update_mime_types.php @@ -73,7 +73,73 @@ foreach ($map as $mimeType => $exts) { $data .= $post; // reverse map -$exts = []; +// we prefill the extensions with some preferences for content-types +$exts = [ + 'aif' => ['audio/x-aiff'], + 'aiff' => ['audio/x-aiff'], + 'aps' => ['application/postscript'], + 'avi' => ['video/avi'], + 'bmp' => ['image/bmp'], + 'bz2' => ['application/x-bz2'], + 'css' => ['text/css'], + 'csv' => ['text/csv'], + 'dmg' => ['application/x-apple-diskimage'], + 'doc' => ['application/msword'], + 'docx' => ['application/vnd.openxmlformats-officedocument.wordprocessingml.document'], + 'eml' => ['message/rfc822'], + 'exe' => ['application/x-ms-dos-executable'], + 'flv' => ['video/x-flv'], + 'gz' => ['application/x-gzip'], + 'hqx' => ['application/stuffit'], + 'htm' => ['text/html'], + 'html' => ['text/html'], + 'gif' => ['image/gif'], + 'jar' => ['application/x-java-archive'], + 'jpeg' => ['image/jpeg'], + 'jpg' => ['image/jpeg'], + 'js' => ['text/javascript'], + 'm3u' => ['audio/x-mpegurl'], + 'm4a' => ['audio/mp4'], + 'mdb' => ['application/x-msaccess'], + 'mid' => ['audio/midi'], + 'midi' => ['audio/midi'], + 'mov' => ['video/quicktime'], + 'mp3' => ['audio/mpeg'], + 'mp4' => ['video/mp4'], + 'mpeg' => ['video/mpeg'], + 'mpg' => ['video/mpeg'], + 'odg' => ['vnd.oasis.opendocument.graphics'], + 'odp' => ['vnd.oasis.opendocument.presentation'], + 'ods' => ['vnd.oasis.opendocument.spreadsheet'], + 'odt' => ['vnd.oasis.opendocument.text'], + 'ogg' => ['audio/ogg'], + 'pdf' => ['application/pdf'], + 'php' => ['application/x-php'], + 'php3' => ['application/x-php'], + 'php4' => ['application/x-php'], + 'php5' => ['application/x-php'], + 'png' => ['image/png'], + 'ppt' => ['application/vnd.ms-powerpoint'], + 'pptx' => ['application/vnd.openxmlformats-officedocument.presentationml.presentation'], + 'ps' => ['application/postscript'], + 'rar' => ['application/x-rar-compressed'], + 'rtf' => ['application/rtf'], + 'sit' => ['application/x-stuffit'], + 'svg' => ['image/svg+xml'], + 'tar' => ['application/x-tar'], + 'tif' => ['image/tiff'], + 'tiff' => ['image/tiff'], + 'ttf' => ['application/x-font-truetype'], + 'txt' => ['text/plain'], + 'vcf' => ['text/x-vcard'], + 'wav' => ['audio/wav'], + 'wma' => ['audio/x-ms-wma'], + 'wmv' => ['audio/x-ms-wmv'], + 'xls' => ['application/vnd.ms-excel'], + 'xlsx' => ['application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'], + 'xml' => ['application/xml'], + 'zip' => ['application/zip'], +]; foreach ($map as $mimeType => $extensions) { foreach ($extensions as $extension) { $exts[$extension][] = $mimeType;