8000 feature #29936 [Mime] Add a set of default content-types for some ext… · symfony/symfony@57f3cbb · GitHub
[go: up one dir, main page]

Skip to content

Commit 57f3cbb

Browse files
committed
feature #29936 [Mime] Add a set of default content-types for some extensions (fabpot)
This PR was merged into the 4.3-dev branch. Discussion ---------- [Mime] Add a set of default content-types for some extensions | Q | A | ------------- | --- | Branch? | master | Bug fix? | no | New feature? | yes | BC breaks? | no <!-- see https://symfony.com/bc --> | Deprecations? | no <!-- don't forget to update UPGRADE-*.md and src/**/CHANGELOG.md files --> | Tests pass? | yes <!-- please add some, will be required by reviewers --> | Fixed tickets | n/a | License | MIT | Doc PR | n/a Some extensions have many possible content-types. This PR forces the first (preferred) content type for some extensions (the preset comes from Swiftmailer). Commits ------- 37065d4 [Mime] added a set of default content-types for some extensions
2 parents a60a459 + 37065d4 commit 57f3cbb

File tree

2 files changed

+94
-27
lines changed

2 files changed

+94
-27
lines changed

src/Symfony/Component/Mime/MimeTypes.php

Lines changed: 27 additions & 26 deletions
10000
Original file line numberDiff line numberDiff line change
@@ -1655,6 +1655,7 @@ public function guessMimeType(string $path): ?string
16551655
'appimage' => ['application/vnd.appimage', 'application/x-iso9660-appimage'],
16561656
'application' => ['application/x-ms-application'],
16571657
'apr' => ['application/vnd.lotus-approach'],
1658+
'aps' => ['application/postscript'],
16581659
'ar' => ['application/x-archive'],
16591660
'arc' => ['application/x-freearc'],
16601661
'arj' => ['application/x-arj'],
@@ -1707,7 +1708,7 @@ public function guessMimeType(string $path): ?string
17071708
'bsdiff' => ['application/x-bsdiff'],
17081709
'btif' => ['image/prs.btif'],
17091710
'bz' => ['application/x-bzip', 'application/x-bzip2'],
1710-
'bz2' => ['application/x-bzip', 'application/x-bzip2'],
1711+
'bz2' => ['application/x-bz2', 'application/x-bzip', 'application/x-bzip2'],
17111712
'c' => ['text/x-c', 'text/x-csrc'],
17121713
'c++' => ['text/x-c++src'],
17131714
'c11amc' => ['application/vnd.cluetrust.cartomobile-config'],
@@ -1958,7 +1959,7 @@ public function guessMimeType(string $path): ?string
19581959
'flc' => ['video/fli', 'video/x-fli', 'video/x-flic'],
19591960
'fli' => ['video/fli', 'video/x-fli', 'video/x-flic'],
19601961
'flo' => ['application/vnd.micrografx.flo'],
1961-
'flv' => ['application/x-flash-video', 'flv-application/octet-stream', 'video/flv', 'video/x-flv'],
1962+
'flv' => ['video/x-flv', 'application/x-flash-video', 'flv-application/octet-stream', 'video/flv'],
19621963
'flw' => ['application/vnd.kde.kivio', 'application/x-kivio'],
19631964
'flx' => ['text/vnd.fmi.flexstor'],
19641965
'fly' => ['text/vnd.fly'],
@@ -2043,7 +2044,7 @@ public function guessMimeType(string $path): ?string
20432044
'gvp' => ['text/google-video-pointer', 'text/x-google-video-pointer'],
20442045
'gxf' => ['application/gxf'],
20452046
'gxt' => ['application/vnd.geonext'],
2046-
'gz' => ['application/gzip', 'application/x-gzip'],
2047+
'gz' => ['application/x-gzip', 'application/gzip'],
20472048
'h' => ['text/x-c', 'text/x-chdr'],
20482049
'h++' => ['text/x-c++hdr'],
20492050
'h261' => ['video/h261'],
@@ -2066,7 +2067,7 @@ public function guessMimeType(string $path): ?string
20662067
'hpid' => ['application/vnd.hp-hpid'],
20672068
'hpp' => ['text/x-c++hdr'],
20682069
'hps' => ['application/vnd.hp-hps'],
2069-
'hqx' => ['application/mac-binhex40'],
2070+
'hqx' => ['application/stuffit', 'application/mac-binhex40'],
20702071
'hs' => ['text/x-haskell'],
20712072
'htke' => ['application/vnd.kenameaapp'],
20722073
'htm' => ['text/html'],
@@ -2127,7 +2128,7 @@ public function guessMimeType(string $path): ?string
21272128
'j2k' => ['image/x-jp2-codestream'],
21282129
'jad' => ['text/vnd.sun.j2me.app-descriptor'],
21292130
'jam' => ['application/vnd.jam'],
2130-
'jar' => ['application/java-archive', 'application/x-jar', 'application/x-java-archive'],
2131+
'jar' => ['application/x-java-archive', 'application/java-archive', 'application/x-jar'],
21312132
'java' => ['text/x-java', 'text/x-java-source'],
21322133
'jceks' => ['application/x-java-jce-keystore'],
21332134
'jisp' => ['application/vnd.jisp'],
@@ -2149,7 +2150,7 @@ public function guessMimeType(string $path): ?string
21492150
'jpr' => ['application/x-jbuilder-project'],
21502151
'jpx' => ['application/x-jbuilder-project', 'image/jpx'],
21512152
'jrd' => ['application/jrd+json'],
2152-
'js' => ['application/javascript', 'application/x-javascript', 'text/javascript'],
2153+
'js' => ['text/javascript', 'application/javascript', 'application/x-javascript'],
21532154
'jsm' => ['application/javascript', 'application/x-javascript', 'text/javascript'],
21542155
'json' => ['application/json'],
21552156
'json-patch' => ['application/json-patch+json'],
@@ -2238,10 +2239,10 @@ public function guessMimeType(string $path): ?string
22382239
'm2ts' => ['video/mp2t'],
22392240
'm2v' => ['video/mpeg'],
22402241
'm3a' => ['audio/mpeg'],
2241-
'm3u' => ['application/m3u', 'application/vnd.apple.mpegurl', 'audio/m3u', 'audio/mpegurl', 'audio/x-m3u', 'audio/x-mp3-playlist', 'audio/x-mpegurl'],
2242+
'm3u' => ['audio/x-mpegurl', 'application/m3u', 'application/vnd.apple.mpegurl', 'audio/m3u', 'audio/mpegurl', 'audio/x-m3u', 'audio/x-mp3-playlist'],
22422243
'm3u8' => ['application/m3u', 'application/vnd.apple.mpegurl', 'audio/m3u', 'audio/mpegurl', 'audio/x-m3u', 'audio/x-mp3-playlist', 'audio/x-mpegurl'],
22432244
'm4' => ['application/x-m4'],
2244-
'm4a' => ['audio/m4a', 'audio/mp4', 'audio/x-m4a'],
2245+
'm4a' => ['audio/mp4', 'audio/m4a', 'audio/x-m4a'],
22452246
'm4b' => ['audio/x-m4b'],
22462247
'm4r' => ['audio/x-m4r'],
22472248
'm4u' => ['video/vnd.mpegurl', 'video/x-mpegurl'],
@@ -2265,7 +2266,7 @@ public function guessMimeType(string $path): ?string
22652266
'mcd' => ['application/vnd.mcd'],
22662267
'mcurl' => ['text/vnd.curl.mcurl'],
22672268
'md' => ['text/markdown', 'text/x-markdown'],
2268-
'mdb' => ['application/mdb', 'application/msaccess', 'application/vnd.ms-access', 'application/vnd.msaccess', 'application/x-mdb', 'application/x-msaccess', 'zz-application/zz-winassoc-mdb'],
2269+
'mdb' => ['application/x-msaccess', 'application/mdb', 'application/msaccess', 'application/vnd.ms-access', 'application/vnd.msaccess', 'application/x-mdb', 'zz-application/zz-winassoc-mdb'],
22692270
'mdi' => ['image/vnd.ms-modi'],
22702271
'mdx' => ['application/x-genesis-32x-rom'],
22712272
'me' => ['text/troff', 'text/x-troff-me'],
@@ -2322,7 +2323,7 @@ public function guessMimeType(string $path): ?string
23222323
'mp2' => ['audio/mp2', 'audio/mpeg', 'audio/x-mp2', 'video/mpeg', 'video/mpeg-system', 'video/x-mpeg', 'video/x-mpeg-system', 'video/x-mpeg2'],
23232324
'mp21' => ['application/mp21'],
23242325
'mp2a' => ['audio/mpeg'],
2325-
'mp3' => ['audio/mp3', 'audio/mpeg', 'audio/x-mp3', 'audio/x-mpeg', 'audio/x-mpg'],
2326+
'mp3' => ['audio/mpeg', 'audio/mp3', 'audio/x-mp3', 'audio/x-mpeg', 'audio/x-mpg'],
23262327
'mp4' => ['video/mp4', 'video/mp4v-es', 'video/x-m4v'],
23272328
'mp4a' => ['audio/mp4'],
23282329
'mp4s' => ['application/mp4'],
@@ -2410,12 +2411,12 @@ public function guessMimeType(string $path): ?string
24102411
'odc' => ['application/vnd.oasis.opendocument.chart'],
24112412
'odf' => ['application/vnd.oasis.opendocument.formula'],
24122413
'odft' => ['application/vnd.oasis.opendocument.formula-template'],
2413-
'odg' => ['application/vnd.oasis.opendocument.graphics'],
2414+
'odg' => ['vnd.oasis.opendocument.graphics', 'application/vnd.oasis.opendocument.graphics'],
24142415
'odi' => ['application/vnd.oasis.opendocument.image'],
24152416
'odm' => ['application/vnd.oasis.opendocument.text-master'],
2416-
'odp' => ['application/vnd.oasis.opendocument.presentation'],
2417-
'ods' => ['application/vnd.oasis.opendocument.spreadsheet'],
2418-
'odt' => ['application/vnd.oasis.opendocument.text'],
2417+
'odp' => ['vnd.oasis.opendocument.presentation', 'application/vnd.oasis.opendocument.presentation'],
2418+
'ods' => ['vnd.oasis.opendocument.spreadsheet', 'application/vnd.oasis.opendocument.spreadsheet'],
2419+
'odt' => ['vnd.oasis.opendocument.text', 'application/vnd.oasis.opendocument.text'],
24192420
'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'],
24202421
'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'],
24212422
'ogm' => ['video/x-ogm', 'video/x-ogm+ogg'],
@@ -2485,7 +2486,7 @@ public function guessMimeType(string $path): ?string
24852486
'pcx' => ['image/vnd.zbrush.pcx', 'image/x-pcx'],
24862487
'pdb' => ['application/vnd.palm', 'application/x-aportisdoc', 'application/x-palm-database'],
24872488
'pdc' => ['application/x-aportisdoc'],
2488-
'pdf' => ['application/acrobat', 'application/nappdf', 'application/pdf', 'application/x-pdf', 'image/pdf'],
2489+
'pdf' => ['application/pdf', 'application/acrobat', 'application/nappdf', 'application/x-pdf', 'image/pdf'],
24892490
'pdf.bz2' => ['application/x-bzpdf'],
24902491
'pdf.gz' => ['application/x-gzpdf'],
24912492
'pdf.lz' => ['application/x-lzpdf'],
@@ -2542,7 +2543,7 @@ public function guessMimeType(string $path): ?string
25422543
'pps' => ['application/mspowerpoint', 'application/powerpoint', 'application/vnd.ms-powerpoint', 'application/x-mspowerpoint'],
25432544
'ppsm' => ['application/vnd.ms-powerpoint.slideshow.macroenabled.12'],
25442545
'ppsx' => ['application/vnd.openxmlformats-officedocument.presentationml.slideshow'],
2545-
'ppt' => ['application/mspowerpoint', 'application/powerpoint', 'application/vnd.ms-powerpoint', 'application/x-mspowerpoint'],
2546+
'ppt' => ['application/vnd.ms-powerpoint', 'application/mspowerpoint', 'application/powerpoint', 'application/x-mspowerpoint'],
25462547
'pptm' => ['application/vnd.ms-powerpoint.presentation.macroenabled.12'],
25472548
'pptx' => ['application/vnd.openxmlformats-officedocument.presentationml.presentation'],
25482549
'ppz' => ['application/mspowerpoint', 'application/powerpoint', 'application/vnd.ms-powerpoint', 'application/x-mspowerpoint'],
@@ -2600,7 +2601,7 @@ public function guessMimeType(string $path): ?string
26002601
'raf' => ['image/x-fuji-raf'],
26012602
'ram' => ['application/ram', 'audio/x-pn-realaudio'],
26022603
'raml' => ['application/raml+yaml'],
2603-
'rar' => ['application/vnd.rar', 'application/x-rar', 'application/x-rar-compressed'],
2604+
'rar' => ['application/x-rar-compressed', 'application/vnd.rar', 'application/x-rar'],
26042605
'ras' => ['image/x-cmu-raster'],
26052606
'raw' => ['image/x-panasonic-raw', 'image/x-panasonic-rw'],
26062607
'raw-disk-image' => ['application/x-raw-disk-image'],
@@ -2709,7 +2710,7 @@ public function guessMimeType(string $path): ?string
27092710
'silo' => ['model/mesh'],
27102711
'sis' => ['application/vnd.symbian.install'],
27112712
'sisx' => ['application/vnd.symbian.install', 'x-epoc/x-sisx-app'],
2712-
'sit' => ['application/stuffit', 'application/x-sit', 'application/x-stuffit'],
2713+
'sit' => ['application/x-stuffit', 'application/stuffit', 'application/x-sit'],
27132714
'sitx' => ['application/x-stuffitx'],
27142715
'siv' => ['application/sieve'],
27152716
'sk' => ['image/x-skencil'],
@@ -2807,7 +2808,7 @@ public function guessMimeType(string $path): ?string
28072808
't3' => ['application/x-t3vm-image'],
28082809
'taglet' => ['application/vnd.mynfc'],
28092810
'tao' => ['application/vnd.tao.intent-module-archive'],
2810-
'tar' => ['application/x-gtar', 'application/x-tar'],
2811+
'tar' => ['application/x-tar', 'application/x-gtar'],
28112812
'tar.Z' => ['application/x-tarz'],
28122813
'tar.bz' => ['application/x-bzip-compressed-tar'],
28132814
'tar.bz2' => ['application/x-bzip-compressed-tar'],
@@ -2862,7 +2863,7 @@ public function guessMimeType(string $path): ?string
28622863
'tsv' => ['text/tab-separated-values'],
28632864
'tta' => ['audio/tta', 'audio/x-tta'],
28642865
'ttc' => ['font/collection'],
2865-
'ttf' => ['application/x-font-ttf', 'font/ttf'],
2866+
'ttf' => ['application/x-font-truetype', 'application/x-font-ttf', 'font/ttf'],
28662867
'ttl' => ['text/turtle'],
28672868
'ttx' => ['application/x-font-ttx'],
28682869
'twd' => ['application/vnd.simtech-mindmapper'],
@@ -2931,7 +2932,7 @@ public function guessMimeType(string $path): ?string
29312932
'vb' => ['application/x-virtual-boy-rom'],
29322933
'vcard' => ['text/directory', 'text/vcard', 'text/x-vcard'],
29332934
'vcd' => ['application/x-cdlink'],
2934-
'vcf' => ['text/directory', 'text/vcard', 'text/x-vcard'],
2935+
'vcf' => ['text/x-vcard', 'text/directory', 'text/vcard'],
29352936
'vcg' => ['application/vnd.groove-vcard'],
29362937
'vcs' => ['application/ics', 'text/calendar', 'text/x-vcalendar'],
29372938
'vct' => ['text/directory', 'text/vcard', 'text/x-vcard'],
@@ -2965,7 +2966,7 @@ public function guessMimeType(string $path): ?string
29652966
'vxml' => ['application/voicexml+xml'],
29662967
'w3d' => ['application/x-director'],
29672968
'wad' => ['application/x-doom', 'application/x-doom-wad', 'application/x-wii-wad'],
2968-
'wav' => ['audio/vnd.wave', 'audio/wav', 'audio/x-wav'],
2969+
'wav' => ['audio/wav', 'audio/vnd.wave', 'audio/x-wav'],
29692970
'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'],
29702971
'wb1' => ['application/x-quattropro'],
29712972
'wb2' => ['application/x-quattropro'],
@@ -2988,14 +2989,14 @@ public function guessMimeType(string $path): ?string
29882989
'wkdownload' => ['application/x-partial-download'],
29892990
'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'],
29902991
'wm' => ['video/x-ms-wm'],
2991-
'wma' => ['audio/wma', 'audio/x-ms-wma'],
2992+
'wma' => ['audio/x-ms-wma', 'audio/wma'],
29922993
'wmd' => ['application/x-ms-wmd'],
29932994
'wmf' => ['application/wmf', 'application/x-msmetafile', 'application/x-wmf', 'image/wmf', 'image/x-win-metafile', 'image/x-wmf'],
29942995
'wml' => ['text/vnd.wap.wml'],
29952996
'wmlc' => ['application/vnd.wap.wmlc'],
29962997
'wmls' => ['text/vnd.wap.wmlscript'],
29972998
'wmlsc' => ['application/vnd.wap.wmlscriptc'],
2998-
'wmv' => ['video/x-ms-wmv'],
2999+
'wmv' => ['audio/x-ms-wmv', 'video/x-ms-wmv'],
29993000
'wmx' => ['application/x-ms-asx', 'audio/x-ms-asx', 'video/x-ms-wax', 'video/x-ms-wmx', 'video/x-ms-wvx'],
30003001
'wmz' => ['application/x-ms-wmz', 'application/x-msmetafile'],
30013002
'woff' => ['application/font-woff', 'application/x-font-woff', 'font/woff'],
@@ -3068,7 +3069,7 @@ public function guessMimeType(string $path): ?string
30683069
'xll' => ['application/msexcel', 'application/vnd.ms-excel', 'application/x-msexcel', 'zz-application/zz-winassoc-xls'],
30693070
'xlm' => ['application/msexcel', 'application/vnd.ms-excel', 'application/x-msexcel', 'zz-application/zz-winassoc-xls'],
30703071
'xlr' => ['application/vnd.ms-works'],
3071-
'xls' => ['application/msexcel', 'application/vnd.ms-excel', 'application/x-msexcel', 'zz-application/zz-winassoc-xls'],
3072+
'xls' => ['application/vnd.ms-excel', 'application/msexcel', 'application/x-msexcel', 'zz-application/zz-winassoc-xls'],
30723073
'xlsb' => ['application/vnd.ms-excel.sheet.binary.macroenabled.12'],
30733074
'xlsm' => ['application/vnd.ms-excel.sheet.macroenabled.12'],
30743075
'xlsx' => ['application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'],
@@ -3117,7 +3118,7 @@ public function guessMimeType(string $path): ?string
31173118
'z8' => ['application/x-zmachine'],
31183119
'zabw' => ['application/x-abiword'],
31193120
'zaz' => ['application/vnd.zzazz.deck+xml'],
3120-
'zip' => ['application/x-zip', 'application/x-zip-compressed', 'application/zip'],
3121+
'zip' => ['application/zip', 'application/x-zip', 'application/x-zip-compressed'],
31213122
'zir' => ['application/vnd.zul'],
31223123
'zirz' => ['application/vnd.zul'],
31233124
'zmm' => ['application/vnd.handheld-entertainment+xml'],

src/Symfony/Component/Mime/Resources/bin/update_mime_types.php

Lines changed: 67 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,73 @@
7373
$data .= $post;
7474

7575
// reverse map
76-
$exts = [];
76+
// we prefill the extensions with some preferences for content-types
77+
$exts = [
78+
'aif' => ['audio/x-aiff'],
79+
'aiff' => ['audio/x-aiff'],
80+
'aps' => ['application/postscript'],
81+
'avi' => ['video/avi'],
82+
'bmp' => ['image/bmp'],
83+
'bz2' => ['application/x-bz2'],
84+
'css' => ['text/css'],
85+
'csv' => ['text/csv'],
86+
'dmg' => ['application/x-apple-diskimage'],
87+
'doc' => ['application/msword'],
88+
'docx' => ['application/vnd.openxmlformats-officedocument.wordprocessingml.document'],
89+
'eml' => ['message/rfc822'],
90+
'exe' => ['application/x-ms-dos-executable'],
91+
'flv' => ['video/x-flv'],
92+
'gz' => ['application/x-gzip'],
93+
'hqx' => ['application/stuffit'],
94+
'htm' => ['text/html'],
95+
'html' => ['text/html'],
96+
'gif' => ['image/gif'],
97+
'jar' => ['application/x-java-archive'],
98+
'jpeg' => ['image/jpeg'],
99+
'jpg' => ['image/jpeg'],
100+
'js' => ['text/javascript'],
101+
'm3u' => ['audio/x-mpegurl'],
102+
'm4a' => ['audio/mp4'],
103+
'mdb' => ['application/x-msaccess'],
104+
'mid' => ['audio/midi'],
105+
'midi' => ['audio/midi'],
106+
'mov' => ['video/quicktime'],
107+
'mp3' => ['audio/mpeg'],
108+
'mp4' => ['video/mp4'],
109+
'mpeg' => ['video/mpeg'],
110+
'mpg' => ['video/mpeg'],
111+
'odg' => ['vnd.oasis.opendocument.graphics'],
112+
'odp' => ['vnd.oasis.opendocument.presentation'],
113+
'ods' => ['vnd.oasis.opendocument.spreadsheet'],
114+
'odt' => ['vnd.oasis.opendocument.text'],
115+
'ogg' => ['audio/ogg'],
116+
'pdf' => ['application/pdf'],
117+
'php' => ['application/x-php'],
118+
'php3' => ['application/x-php'],
119+
'php4' => ['application/x-php'],
120+
'php5' => ['application/x-php'],
121+
'png' => ['image/png'],
122+
'ppt' => ['application/vnd.ms-powerpoint'],
123+
'pptx' => ['application/vnd.openxmlformats-officedocument.presentationml.presentation'],
124+
'ps' => ['application/postscript'],
125+
'rar' => ['application/x-rar-compressed'],
126+
'rtf' => ['application/rtf'],
127+
'sit' => ['application/x-stuffit'],
128+
'svg' => ['image/svg+xml'],
129+
'tar' => ['application/x-tar'],
130+
'tif' => ['image/tiff'],
131+
'tiff' => ['image/tiff'],
132+
'ttf' => ['application/x-font-truetype'],
133+
'txt' => ['text/plain'],
134+
'vcf' => ['text/x-vcard'],
135+
'wav' => ['audio/wav'],
136+
'wma' => ['audio/x-ms-wma'],
137+
'wmv' => ['audio/x-ms-wmv'],
138+
'xls' => ['application/vnd.ms-excel'],
139+
'xlsx' => ['application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'],
140+
'xml' => ['application/xml'],
141+
'zip' => ['application/zip'],
142+
];
77143
foreach ($map as $mimeType => $extensions) {
78144
foreach ($extensions as $extension) {
79145
$exts[$extension][] = $mimeType;

0 commit comments

Comments
 (0)
0