| 1 | <?php |
||
| 2 | |||
| 3 | namespace ByJG\RestServer\Middleware; |
||
| 4 | |||
| 5 | use ByJG\RestServer\Exception\Error415Exception; |
||
| 6 | use ByJG\RestServer\Exception\Error500Exception; |
||
| 7 | use ByJG\RestServer\HttpRequest; |
||
| 8 | use ByJG\RestServer\HttpResponse; |
||
| 9 | use ByJG\RestServer\OutputProcessor\HtmlOutputProcessor; |
||
| 10 | use ByJG\RestServer\ResponseBag; |
||
| 11 | use ByJG\Util\Uri; |
||
| 12 | use FastRoute\Dispatcher; |
||
| 13 | |||
| 14 | class ServerStaticMiddleware implements BeforeMiddlewareInterface |
||
| 15 | { |
||
| 16 | |||
| 17 | protected $mimeTypes = [ |
||
| 18 | '123' => 'application/vnd.lotus-1-2-3', |
||
| 19 | '3dml' => 'text/vnd.in3d.3dml', |
||
| 20 | '3ds' => 'image/x-3ds', |
||
| 21 | '3g2' => 'video/3gpp2', |
||
| 22 | '3gp' => 'video/3gpp', |
||
| 23 | '7z' => 'application/x-7z-compressed', |
||
| 24 | 'aab' => 'application/x-authorware-bin', |
||
| 25 | 'aac' => 'audio/x-aac', |
||
| 26 | 'aam' => 'application/x-authorware-map', |
||
| 27 | 'aas' => 'application/x-authorware-seg', |
||
| 28 | 'abw' => 'application/x-abiword', |
||
| 29 | 'ac' => 'application/pkix-attr-cert', |
||
| 30 | 'acc' => 'application/vnd.americandynamics.acc', |
||
| 31 | 'ace' => 'application/x-ace-compressed', |
||
| 32 | 'acu' => 'application/vnd.acucobol', |
||
| 33 | 'acutc' => 'application/vnd.acucorp', |
||
| 34 | 'adp' => 'audio/adpcm', |
||
| 35 | 'aep' => 'application/vnd.audiograph', |
||
| 36 | 'afm' => 'application/x-font-type1', |
||
| 37 | 'afp' => 'application/vnd.ibm.modcap', |
||
| 38 | 'ahead' => 'application/vnd.ahead.space', |
||
| 39 | 'ai' => 'application/postscript', |
||
| 40 | 'aif' => 'audio/x-aiff', |
||
| 41 | 'aifc' => 'audio/x-aiff', |
||
| 42 | 'aiff' => 'audio/x-aiff', |
||
| 43 | 'air' => 'application/vnd.adobe.air-application-installer-package+zip', |
||
| 44 | 'ait' => 'application/vnd.dvb.ait', |
||
| 45 | 'ami' => 'application/vnd.amiga.ami', |
||
| 46 | 'apk' => 'application/vnd.android.package-archive', |
||
| 47 | 'appcache' => 'text/cache-manifest', |
||
| 48 | 'application' => 'application/x-ms-application', |
||
| 49 | 'apr' => 'application/vnd.lotus-approach', |
||
| 50 | 'arc' => 'application/x-freearc', |
||
| 51 | 'asc' => 'application/pgp-signature', |
||
| 52 | 'asf' => 'video/x-ms-asf', |
||
| 53 | 'asm' => 'text/x-asm', |
||
| 54 | 'aso' => 'application/vnd.accpac.simply.aso', |
||
| 55 | 'asx' => 'video/x-ms-asf', |
||
| 56 | 'atc' => 'application/vnd.acucorp', |
||
| 57 | 'atom' => 'application/atom+xml', |
||
| 58 | 'atomcat' => 'application/atomcat+xml', |
||
| 59 | 'atomsvc' => 'application/atomsvc+xml', |
||
| 60 | 'atx' => 'application/vnd.antix.game-component', |
||
| 61 | 'au' => 'audio/basic', |
||
| 62 | 'avi' => 'video/x-msvideo', |
||
| 63 | 'aw' => 'application/applixware', |
||
| 64 | 'azf' => 'application/vnd.airzip.filesecure.azf', |
||
| 65 | 'azs' => 'application/vnd.airzip.filesecure.azs', |
||
| 66 | 'azw' => 'application/vnd.amazon.ebook', |
||
| 67 | 'bat' => 'application/x-msdownload', |
||
| 68 | 'bcpio' => 'application/x-bcpio', |
||
| 69 | 'bdf' => 'application/x-font-bdf', |
||
| 70 | 'bdm' => 'application/vnd.syncml.dm+wbxml', |
||
| 71 | 'bed' => 'application/vnd.realvnc.bed', |
||
| 72 | 'bh2' => 'application/vnd.fujitsu.oasysprs', |
||
| 73 | 'bin' => 'application/octet-stream', |
||
| 74 | 'blb' => 'application/x-blorb', |
||
| 75 | 'blorb' => 'application/x-blorb', |
||
| 76 | 'bmi' => 'application/vnd.bmi', |
||
| 77 | 'bmp' => 'image/bmp', |
||
| 78 | 'book' => 'application/vnd.framemaker', |
||
| 79 | 'box' => 'application/vnd.previewsystems.box', |
||
| 80 | 'boz' => 'application/x-bzip2', |
||
| 81 | 'bpk' => 'application/octet-stream', |
||
| 82 | 'btif' => 'image/prs.btif', |
||
| 83 | 'bz' => 'application/x-bzip', |
||
| 84 | 'bz2' => 'application/x-bzip2', |
||
| 85 | 'c' => 'text/x-c', |
||
| 86 | 'c11amc' => 'application/vnd.cluetrust.cartomobile-config', |
||
| 87 | 'c11amz' => 'application/vnd.cluetrust.cartomobile-config-pkg', |
||
| 88 | 'c4d' => 'application/vnd.clonk.c4group', |
||
| 89 | 'c4f' => 'application/vnd.clonk.c4group', |
||
| 90 | 'c4g' => 'application/vnd.clonk.c4group', |
||
| 91 | 'c4p' => 'application/vnd.clonk.c4group', |
||
| 92 | 'c4u' => 'application/vnd.clonk.c4group', |
||
| 93 | 'cab' => 'application/vnd.ms-cab-compressed', |
||
| 94 | 'caf' => 'audio/x-caf', |
||
| 95 | 'cap' => 'application/vnd.tcpdump.pcap', |
||
| 96 | 'car' => 'application/vnd.curl.car', |
||
| 97 | 'cat' => 'application/vnd.ms-pki.seccat', |
||
| 98 | 'cb7' => 'application/x-cbr', |
||
| 99 | 'cba' => 'application/x-cbr', |
||
| 100 | 'cbr' => 'application/x-cbr', |
||
| 101 | 'cbt' => 'application/x-cbr', |
||
| 102 | 'cbz' => 'application/x-cbr', |
||
| 103 | 'cc' => 'text/x-c', |
||
| 104 | 'cct' => 'application/x-director', |
||
| 105 | 'ccxml' => 'application/ccxml+xml', |
||
| 106 | 'cdbcmsg' => 'application/vnd.contact.cmsg', |
||
| 107 | 'cdf' => 'application/x-netcdf', |
||
| 108 | 'cdkey' => 'application/vnd.mediastation.cdkey', |
||
| 109 | 'cdmia' => 'application/cdmi-capability', |
||
| 110 | 'cdmic' => 'application/cdmi-container', |
||
| 111 | 'cdmid' => 'application/cdmi-domain', |
||
| 112 | 'cdmio' => 'application/cdmi-object', |
||
| 113 | 'cdmiq' => 'application/cdmi-queue', |
||
| 114 | 'cdx' => 'chemical/x-cdx', |
||
| 115 | 'cdxml' => 'application/vnd.chemdraw+xml', |
||
| 116 | 'cdy' => 'application/vnd.cinderella', |
||
| 117 | 'cer' => 'application/pkix-cert', |
||
| 118 | 'cfs' => 'application/x-cfs-compressed', |
||
| 119 | 'cgm' => 'image/cgm', |
||
| 120 | 'chat' => 'application/x-chat', |
||
| 121 | 'chm' => 'application/vnd.ms-htmlhelp', |
||
| 122 | 'chrt' => 'application/vnd.kde.kchart', |
||
| 123 | 'cif' => 'chemical/x-cif', |
||
| 124 | 'cii' => 'application/vnd.anser-web-certificate-issue-initiation', |
||
| 125 | 'cil' => 'application/vnd.ms-artgalry', |
||
| 126 | 'cla' => 'application/vnd.claymore', |
||
| 127 | 'class' => 'application/java-vm', |
||
| 128 | 'clkk' => 'application/vnd.crick.clicker.keyboard', |
||
| 129 | 'clkp' => 'application/vnd.crick.clicker.palette', |
||
| 130 | 'clkt' => 'application/vnd.crick.clicker.template', |
||
| 131 | 'clkw' => 'application/vnd.crick.clicker.wordbank', |
||
| 132 | 'clkx' => 'application/vnd.crick.clicker', |
||
| 133 | 'clp' => 'application/x-msclip', |
||
| 134 | 'cmc' => 'application/vnd.cosmocaller', |
||
| 135 | 'cmdf' => 'chemical/x-cmdf', |
||
| 136 | 'cml' => 'chemical/x-cml', |
||
| 137 | 'cmp' => 'application/vnd.yellowriver-custom-menu', |
||
| 138 | 'cmx' => 'image/x-cmx', |
||
| 139 | 'cod' => 'application/vnd.rim.cod', |
||
| 140 | 'com' => 'application/x-msdownload', |
||
| 141 | 'conf' => 'text/plain', |
||
| 142 | 'cpio' => 'application/x-cpio', |
||
| 143 | 'cpp' => 'text/x-c', |
||
| 144 | 'cpt' => 'application/mac-compactpro', |
||
| 145 | 'crd' => 'application/x-mscardfile', |
||
| 146 | 'crl' => 'application/pkix-crl', |
||
| 147 | 'crt' => 'application/x-x509-ca-cert', |
||
| 148 | 'cryptonote' => 'application/vnd.rig.cryptonote', |
||
| 149 | 'csh' => 'application/x-csh', |
||
| 150 | 'csml' => 'chemical/x-csml', |
||
| 151 | 'csp' => 'application/vnd.commonspace', |
||
| 152 | 'css' => 'text/css', |
||
| 153 | 'cst' => 'application/x-director', |
||
| 154 | 'csv' => 'text/csv', |
||
| 155 | 'cu' => 'application/cu-seeme', |
||
| 156 | 'curl' => 'text/vnd.curl', |
||
| 157 | 'cww' => 'application/prs.cww', |
||
| 158 | 'cxt' => 'application/x-director', |
||
| 159 | 'cxx' => 'text/x-c', |
||
| 160 | 'dae' => 'model/vnd.collada+xml', |
||
| 161 | 'daf' => 'application/vnd.mobius.daf', |
||
| 162 | 'dart' => 'application/vnd.dart', |
||
| 163 | 'dataless' => 'application/vnd.fdsn.seed', |
||
| 164 | 'davmount' => 'application/davmount+xml', |
||
| 165 | 'dbk' => 'application/docbook+xml', |
||
| 166 | 'dcr' => 'application/x-director', |
||
| 167 | 'dcurl' => 'text/vnd.curl.dcurl', |
||
| 168 | 'dd2' => 'application/vnd.oma.dd2+xml', |
||
| 169 | 'ddd' => 'application/vnd.fujixerox.ddd', |
||
| 170 | 'deb' => 'application/x-debian-package', |
||
| 171 | 'def' => 'text/plain', |
||
| 172 | 'deploy' => 'application/octet-stream', |
||
| 173 | 'der' => 'application/x-x509-ca-cert', |
||
| 174 | 'dfac' => 'application/vnd.dreamfactory', |
||
| 175 | 'dgc' => 'application/x-dgc-compressed', |
||
| 176 | 'dic' => 'text/x-c', |
||
| 177 | 'dir' => 'application/x-director', |
||
| 178 | 'dis' => 'application/vnd.mobius.dis', |
||
| 179 | 'dist' => 'application/octet-stream', |
||
| 180 | 'distz' => 'application/octet-stream', |
||
| 181 | 'djv' => 'image/vnd.djvu', |
||
| 182 | 'djvu' => 'image/vnd.djvu', |
||
| 183 | 'dll' => 'application/x-msdownload', |
||
| 184 | 'dmg' => 'application/x-apple-diskimage', |
||
| 185 | 'dmp' => 'application/vnd.tcpdump.pcap', |
||
| 186 | 'dms' => 'application/octet-stream', |
||
| 187 | 'dna' => 'application/vnd.dna', |
||
| 188 | 'doc' => 'application/msword', |
||
| 189 | 'docm' => 'application/vnd.ms-word.document.macroenabled.12', |
||
| 190 | 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', |
||
| 191 | 'dot' => 'application/msword', |
||
| 192 | 'dotm' => 'application/vnd.ms-word.template.macroenabled.12', |
||
| 193 | 'dotx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.template', |
||
| 194 | 'dp' => 'application/vnd.osgi.dp', |
||
| 195 | 'dpg' => 'application/vnd.dpgraph', |
||
| 196 | 'dra' => 'audio/vnd.dra', |
||
| 197 | 'dsc' => 'text/prs.lines.tag', |
||
| 198 | 'dssc' => 'application/dssc+der', |
||
| 199 | 'dtb' => 'application/x-dtbook+xml', |
||
| 200 | 'dtd' => 'application/xml-dtd', |
||
| 201 | 'dts' => 'audio/vnd.dts', |
||
| 202 | 'dtshd' => 'audio/vnd.dts.hd', |
||
| 203 | 'dump' => 'application/octet-stream', |
||
| 204 | 'dvb' => 'video/vnd.dvb.file', |
||
| 205 | 'dvi' => 'application/x-dvi', |
||
| 206 | 'dwf' => 'model/vnd.dwf', |
||
| 207 | 'dwg' => 'image/vnd.dwg', |
||
| 208 | 'dxf' => 'image/vnd.dxf', |
||
| 209 | 'dxp' => 'application/vnd.spotfire.dxp', |
||
| 210 | 'dxr' => 'application/x-director', |
||
| 211 | 'ecelp4800' => 'audio/vnd.nuera.ecelp4800', |
||
| 212 | 'ecelp7470' => 'audio/vnd.nuera.ecelp7470', |
||
| 213 | 'ecelp9600' => 'audio/vnd.nuera.ecelp9600', |
||
| 214 | 'ecma' => 'application/ecmascript', |
||
| 215 | 'edm' => 'application/vnd.novadigm.edm', |
||
| 216 | 'edx' => 'application/vnd.novadigm.edx', |
||
| 217 | 'efif' => 'application/vnd.picsel', |
||
| 218 | 'ei6' => 'application/vnd.pg.osasli', |
||
| 219 | 'elc' => 'application/octet-stream', |
||
| 220 | 'emf' => 'application/x-msmetafile', |
||
| 221 | 'eml' => 'message/rfc822', |
||
| 222 | 'emma' => 'application/emma+xml', |
||
| 223 | 'emz' => 'application/x-msmetafile', |
||
| 224 | 'eol' => 'audio/vnd.digital-winds', |
||
| 225 | 'eot' => 'application/vnd.ms-fontobject', |
||
| 226 | 'eps' => 'application/postscript', |
||
| 227 | 'epub' => 'application/epub+zip', |
||
| 228 | 'es3' => 'application/vnd.eszigno3+xml', |
||
| 229 | 'esa' => 'application/vnd.osgi.subsystem', |
||
| 230 | 'esf' => 'application/vnd.epson.esf', |
||
| 231 | 'et3' => 'application/vnd.eszigno3+xml', |
||
| 232 | 'etx' => 'text/x-setext', |
||
| 233 | 'eva' => 'application/x-eva', |
||
| 234 | 'evy' => 'application/x-envoy', |
||
| 235 | 'exe' => 'application/x-msdownload', |
||
| 236 | 'exi' => 'application/exi', |
||
| 237 | 'ext' => 'application/vnd.novadigm.ext', |
||
| 238 | 'ez' => 'application/andrew-inset', |
||
| 239 | 'ez2' => 'application/vnd.ezpix-album', |
||
| 240 | 'ez3' => 'application/vnd.ezpix-package', |
||
| 241 | 'f' => 'text/x-fortran', |
||
| 242 | 'f4v' => 'video/x-f4v', |
||
| 243 | 'f77' => 'text/x-fortran', |
||
| 244 | 'f90' => 'text/x-fortran', |
||
| 245 | 'fbs' => 'image/vnd.fastbidsheet', |
||
| 246 | 'fcdt' => 'application/vnd.adobe.formscentral.fcdt', |
||
| 247 | 'fcs' => 'application/vnd.isac.fcs', |
||
| 248 | 'fdf' => 'application/vnd.fdf', |
||
| 249 | 'fe_launch' => 'application/vnd.denovo.fcselayout-link', |
||
| 250 | 'fg5' => 'application/vnd.fujitsu.oasysgp', |
||
| 251 | 'fgd' => 'application/x-director', |
||
| 252 | 'fh' => 'image/x-freehand', |
||
| 253 | 'fh4' => 'image/x-freehand', |
||
| 254 | 'fh5' => 'image/x-freehand', |
||
| 255 | 'fh7' => 'image/x-freehand', |
||
| 256 | 'fhc' => 'image/x-freehand', |
||
| 257 | 'fig' => 'application/x-xfig', |
||
| 258 | 'flac' => 'audio/x-flac', |
||
| 259 | 'fli' => 'video/x-fli', |
||
| 260 | 'flo' => 'application/vnd.micrografx.flo', |
||
| 261 | 'flv' => 'video/x-flv', |
||
| 262 | 'flw' => 'application/vnd.kde.kivio', |
||
| 263 | 'flx' => 'text/vnd.fmi.flexstor', |
||
| 264 | 'fly' => 'text/vnd.fly', |
||
| 265 | 'fm' => 'application/vnd.framemaker', |
||
| 266 | 'fnc' => 'application/vnd.frogans.fnc', |
||
| 267 | 'for' => 'text/x-fortran', |
||
| 268 | 'fpx' => 'image/vnd.fpx', |
||
| 269 | 'frame' => 'application/vnd.framemaker', |
||
| 270 | 'fsc' => 'application/vnd.fsc.weblaunch', |
||
| 271 | 'fst' => 'image/vnd.fst', |
||
| 272 | 'ftc' => 'application/vnd.fluxtime.clip', |
||
| 273 | 'fti' => 'application/vnd.anser-web-funds-transfer-initiation', |
||
| 274 | 'fvt' => 'video/vnd.fvt', |
||
| 275 | 'fxp' => 'application/vnd.adobe.fxp', |
||
| 276 | 'fxpl' => 'application/vnd.adobe.fxp', |
||
| 277 | 'fzs' => 'application/vnd.fuzzysheet', |
||
| 278 | 'g2w' => 'application/vnd.geoplan', |
||
| 279 | 'g3' => 'image/g3fax', |
||
| 280 | 'g3w' => 'application/vnd.geospace', |
||
| 281 | 'gac' => 'application/vnd.groove-account', |
||
| 282 | 'gam' => 'application/x-tads', |
||
| 283 | 'gbr' => 'application/rpki-ghostbusters', |
||
| 284 | 'gca' => 'application/x-gca-compressed', |
||
| 285 | 'gdl' => 'model/vnd.gdl', |
||
| 286 | 'geo' => 'application/vnd.dynageo', |
||
| 287 | 'gex' => 'application/vnd.geometry-explorer', |
||
| 288 | 'ggb' => 'application/vnd.geogebra.file', |
||
| 289 | 'ggt' => 'application/vnd.geogebra.tool', |
||
| 290 | 'ghf' => 'application/vnd.groove-help', |
||
| 291 | 'gif' => 'image/gif', |
||
| 292 | 'gim' => 'application/vnd.groove-identity-message', |
||
| 293 | 'gml' => 'application/gml+xml', |
||
| 294 | 'gmx' => 'application/vnd.gmx', |
||
| 295 | 'gnumeric' => 'application/x-gnumeric', |
||
| 296 | 'gph' => 'application/vnd.flographit', |
||
| 297 | 'gpx' => 'application/gpx+xml', |
||
| 298 | 'gqf' => 'application/vnd.grafeq', |
||
| 299 | 'gqs' => 'application/vnd.grafeq', |
||
| 300 | 'gram' => 'application/srgs', |
||
| 301 | 'gramps' => 'application/x-gramps-xml', |
||
| 302 | 'gre' => 'application/vnd.geometry-explorer', |
||
| 303 | 'grv' => 'application/vnd.groove-injector', |
||
| 304 | 'grxml' => 'application/srgs+xml', |
||
| 305 | 'gsf' => 'application/x-font-ghostscript', |
||
| 306 | 'gtar' => 'application/x-gtar', |
||
| 307 | 'gtm' => 'application/vnd.groove-tool-message', |
||
| 308 | 'gtw' => 'model/vnd.gtw', |
||
| 309 | 'gv' => 'text/vnd.graphviz', |
||
| 310 | 'gxf' => 'application/gxf', |
||
| 311 | 'gxt' => 'application/vnd.geonext', |
||
| 312 | 'h' => 'text/x-c', |
||
| 313 | 'h261' => 'video/h261', |
||
| 314 | 'h263' => 'video/h263', |
||
| 315 | 'h264' => 'video/h264', |
||
| 316 | 'hal' => 'application/vnd.hal+xml', |
||
| 317 | 'hbci' => 'application/vnd.hbci', |
||
| 318 | 'hdf' => 'application/x-hdf', |
||
| 319 | 'hh' => 'text/x-c', |
||
| 320 | 'hlp' => 'application/winhlp', |
||
| 321 | 'hpgl' => 'application/vnd.hp-hpgl', |
||
| 322 | 'hpid' => 'application/vnd.hp-hpid', |
||
| 323 | 'hps' => 'application/vnd.hp-hps', |
||
| 324 | 'hqx' => 'application/mac-binhex40', |
||
| 325 | 'htke' => 'application/vnd.kenameaapp', |
||
| 326 | 'htm' => 'text/html', |
||
| 327 | 'html' => 'text/html', |
||
| 328 | 'hvd' => 'application/vnd.yamaha.hv-dic', |
||
| 329 | 'hvp' => 'application/vnd.yamaha.hv-voice', |
||
| 330 | 'hvs' => 'application/vnd.yamaha.hv-script', |
||
| 331 | 'i2g' => 'application/vnd.intergeo', |
||
| 332 | 'icc' => 'application/vnd.iccprofile', |
||
| 333 | 'ice' => 'x-conference/x-cooltalk', |
||
| 334 | 'icm' => 'application/vnd.iccprofile', |
||
| 335 | 'ico' => 'image/x-icon', |
||
| 336 | 'ics' => 'text/calendar', |
||
| 337 | 'ief' => 'image/ief', |
||
| 338 | 'ifb' => 'text/calendar', |
||
| 339 | 'ifm' => 'application/vnd.shana.informed.formdata', |
||
| 340 | 'iges' => 'model/iges', |
||
| 341 | 'igl' => 'application/vnd.igloader', |
||
| 342 | 'igm' => 'application/vnd.insors.igm', |
||
| 343 | 'igs' => 'model/iges', |
||
| 344 | 'igx' => 'application/vnd.micrografx.igx', |
||
| 345 | 'iif' => 'application/vnd.shana.informed.interchange', |
||
| 346 | 'imp' => 'application/vnd.accpac.simply.imp', |
||
| 347 | 'ims' => 'application/vnd.ms-ims', |
||
| 348 | 'in' => 'text/plain', |
||
| 349 | 'ink' => 'application/inkml+xml', |
||
| 350 | 'inkml' => 'application/inkml+xml', |
||
| 351 | 'install' => 'application/x-install-instructions', |
||
| 352 | 'iota' => 'application/vnd.astraea-software.iota', |
||
| 353 | 'ipfix' => 'application/ipfix', |
||
| 354 | 'ipk' => 'application/vnd.shana.informed.package', |
||
| 355 | 'irm' => 'application/vnd.ibm.rights-management', |
||
| 356 | 'irp' => 'application/vnd.irepository.package+xml', |
||
| 357 | 'iso' => 'application/x-iso9660-image', |
||
| 358 | 'itp' => 'application/vnd.shana.informed.formtemplate', |
||
| 359 | 'ivp' => 'application/vnd.immervision-ivp', |
||
| 360 | 'ivu' => 'application/vnd.immervision-ivu', |
||
| 361 | 'jad' => 'text/vnd.sun.j2me.app-descriptor', |
||
| 362 | 'jam' => 'application/vnd.jam', |
||
| 363 | 'jar' => 'application/java-archive', |
||
| 364 | 'java' => 'text/x-java-source', |
||
| 365 | 'jisp' => 'application/vnd.jisp', |
||
| 366 | 'jlt' => 'application/vnd.hp-jlyt', |
||
| 367 | 'jnlp' => 'application/x-java-jnlp-file', |
||
| 368 | 'joda' => 'application/vnd.joost.joda-archive', |
||
| 369 | 'jpe' => 'image/jpeg', |
||
| 370 | 'jpeg' => 'image/jpeg', |
||
| 371 | 'jpg' => 'image/jpeg', |
||
| 372 | 'jpgm' => 'video/jpm', |
||
| 373 | 'jpgv' => 'video/jpeg', |
||
| 374 | 'jpm' => 'video/jpm', |
||
| 375 | 'js' => 'text/javascript', |
||
| 376 | 'json' => 'application/json', |
||
| 377 | 'jsonml' => 'application/jsonml+json', |
||
| 378 | 'kar' => 'audio/midi', |
||
| 379 | 'karbon' => 'application/vnd.kde.karbon', |
||
| 380 | 'kfo' => 'application/vnd.kde.kformula', |
||
| 381 | 'kia' => 'application/vnd.kidspiration', |
||
| 382 | 'kml' => 'application/vnd.google-earth.kml+xml', |
||
| 383 | 'kmz' => 'application/vnd.google-earth.kmz', |
||
| 384 | 'kne' => 'application/vnd.kinar', |
||
| 385 | 'knp' => 'application/vnd.kinar', |
||
| 386 | 'kon' => 'application/vnd.kde.kontour', |
||
| 387 | 'kpr' => 'application/vnd.kde.kpresenter', |
||
| 388 | 'kpt' => 'application/vnd.kde.kpresenter', |
||
| 389 | 'kpxx' => 'application/vnd.ds-keypoint', |
||
| 390 | 'ksp' => 'application/vnd.kde.kspread', |
||
| 391 | 'ktr' => 'application/vnd.kahootz', |
||
| 392 | 'ktx' => 'image/ktx', |
||
| 393 | 'ktz' => 'application/vnd.kahootz', |
||
| 394 | 'kwd' => 'application/vnd.kde.kword', |
||
| 395 | 'kwt' => 'application/vnd.kde.kword', |
||
| 396 | 'lasxml' => 'application/vnd.las.las+xml', |
||
| 397 | 'latex' => 'application/x-latex', |
||
| 398 | 'lbd' => 'application/vnd.llamagraphics.life-balance.desktop', |
||
| 399 | 'lbe' => 'application/vnd.llamagraphics.life-balance.exchange+xml', |
||
| 400 | 'les' => 'application/vnd.hhe.lesson-player', |
||
| 401 | 'lha' => 'application/x-lzh-compressed', |
||
| 402 | 'link66' => 'application/vnd.route66.link66+xml', |
||
| 403 | 'list' => 'text/plain', |
||
| 404 | 'list3820' => 'application/vnd.ibm.modcap', |
||
| 405 | 'listafp' => 'application/vnd.ibm.modcap', |
||
| 406 | 'lnk' => 'application/x-ms-shortcut', |
||
| 407 | 'log' => 'text/plain', |
||
| 408 | 'lostxml' => 'application/lost+xml', |
||
| 409 | 'lrf' => 'application/octet-stream', |
||
| 410 | 'lrm' => 'application/vnd.ms-lrm', |
||
| 411 | 'ltf' => 'application/vnd.frogans.ltf', |
||
| 412 | 'lvp' => 'audio/vnd.lucent.voice', |
||
| 413 | 'lwp' => 'application/vnd.lotus-wordpro', |
||
| 414 | 'lzh' => 'application/x-lzh-compressed', |
||
| 415 | 'm13' => 'application/x-msmediaview', |
||
| 416 | 'm14' => 'application/x-msmediaview', |
||
| 417 | 'm1v' => 'video/mpeg', |
||
| 418 | 'm21' => 'application/mp21', |
||
| 419 | 'm2a' => 'audio/mpeg', |
||
| 420 | 'm2v' => 'video/mpeg', |
||
| 421 | 'm3a' => 'audio/mpeg', |
||
| 422 | 'm3u' => 'audio/x-mpegurl', |
||
| 423 | 'm3u8' => 'application/vnd.apple.mpegurl', |
||
| 424 | 'm4a' => 'audio/mp4', |
||
| 425 | 'm4u' => 'video/vnd.mpegurl', |
||
| 426 | 'm4v' => 'video/x-m4v', |
||
| 427 | 'ma' => 'application/mathematica', |
||
| 428 | 'mads' => 'application/mads+xml', |
||
| 429 | 'mag' => 'application/vnd.ecowin.chart', |
||
| 430 | 'maker' => 'application/vnd.framemaker', |
||
| 431 | 'man' => 'text/troff', |
||
| 432 | 'mar' => 'application/octet-stream', |
||
| 433 | 'mathml' => 'application/mathml+xml', |
||
| 434 | 'mb' => 'application/mathematica', |
||
| 435 | 'mbk' => 'application/vnd.mobius.mbk', |
||
| 436 | 'mbox' => 'application/mbox', |
||
| 437 | 'mc1' => 'application/vnd.medcalcdata', |
||
| 438 | 'mcd' => 'application/vnd.mcd', |
||
| 439 | 'mcurl' => 'text/vnd.curl.mcurl', |
||
| 440 | 'mdb' => 'application/x-msaccess', |
||
| 441 | 'mdi' => 'image/vnd.ms-modi', |
||
| 442 | 'me' => 'text/troff', |
||
| 443 | 'mesh' => 'model/mesh', |
||
| 444 | 'meta4' => 'application/metalink4+xml', |
||
| 445 | 'metalink' => 'application/metalink+xml', |
||
| 446 | 'mets' => 'application/mets+xml', |
||
| 447 | 'mfm' => 'application/vnd.mfmp', |
||
| 448 | 'mft' => 'application/rpki-manifest', |
||
| 449 | 'mgp' => 'application/vnd.osgeo.mapguide.package', |
||
| 450 | 'mgz' => 'application/vnd.proteus.magazine', |
||
| 451 | 'mid' => 'audio/midi', |
||
| 452 | 'midi' => 'audio/midi', |
||
| 453 | 'mie' => 'application/x-mie', |
||
| 454 | 'mif' => 'application/vnd.mif', |
||
| 455 | 'mime' => 'message/rfc822', |
||
| 456 | 'mj2' => 'video/mj2', |
||
| 457 | 'mjp2' => 'video/mj2', |
||
| 458 | 'mjs' => 'text/javascript', |
||
| 459 | 'mk3d' => 'video/x-matroska', |
||
| 460 | 'mka' => 'audio/x-matroska', |
||
| 461 | 'mks' => 'video/x-matroska', |
||
| 462 | 'mkv' => 'video/x-matroska', |
||
| 463 | 'mlp' => 'application/vnd.dolby.mlp', |
||
| 464 | 'mmd' => 'application/vnd.chipnuts.karaoke-mmd', |
||
| 465 | 'mmf' => 'application/vnd.smaf', |
||
| 466 | 'mmr' => 'image/vnd.fujixerox.edmics-mmr', |
||
| 467 | 'mng' => 'video/x-mng', |
||
| 468 | 'mny' => 'application/x-msmoney', |
||
| 469 | 'mobi' => 'application/x-mobipocket-ebook', |
||
| 470 | 'mods' => 'application/mods+xml', |
||
| 471 | 'mov' => 'video/quicktime', |
||
| 472 | 'movie' => 'video/x-sgi-movie', |
||
| 473 | 'mp2' => 'audio/mpeg', |
||
| 474 | 'mp21' => 'application/mp21', |
||
| 475 | 'mp2a' => 'audio/mpeg', |
||
| 476 | 'mp3' => 'audio/mpeg', |
||
| 477 | 'mp4' => 'video/mp4', |
||
| 478 | 'mp4a' => 'audio/mp4', |
||
| 479 | 'mp4s' => 'application/mp4', |
||
| 480 | 'mp4v' => 'video/mp4', |
||
| 481 | 'mpc' => 'application/vnd.mophun.certificate', |
||
| 482 | 'mpe' => 'video/mpeg', |
||
| 483 | 'mpeg' => 'video/mpeg', |
||
| 484 | 'mpg' => 'video/mpeg', |
||
| 485 | 'mpg4' => 'video/mp4', |
||
| 486 | 'mpga' => 'audio/mpeg', |
||
| 487 | 'mpkg' => 'application/vnd.apple.installer+xml', |
||
| 488 | 'mpm' => 'application/vnd.blueice.multipass', |
||
| 489 | 'mpn' => 'application/vnd.mophun.application', |
||
| 490 | 'mpp' => 'application/vnd.ms-project', |
||
| 491 | 'mpt' => 'application/vnd.ms-project', |
||
| 492 | 'mpy' => 'application/vnd.ibm.minipay', |
||
| 493 | 'mqy' => 'application/vnd.mobius.mqy', |
||
| 494 | 'mrc' => 'application/marc', |
||
| 495 | 'mrcx' => 'application/marcxml+xml', |
||
| 496 | 'ms' => 'text/troff', |
||
| 497 | 'mscml' => 'application/mediaservercontrol+xml', |
||
| 498 | 'mseed' => 'application/vnd.fdsn.mseed', |
||
| 499 | 'mseq' => 'application/vnd.mseq', |
||
| 500 | 'msf' => 'application/vnd.epson.msf', |
||
| 501 | 'msh' => 'model/mesh', |
||
| 502 | 'msi' => 'application/x-msdownload', |
||
| 503 | 'msl' => 'application/vnd.mobius.msl', |
||
| 504 | 'msty' => 'application/vnd.muvee.style', |
||
| 505 | 'mts' => 'model/vnd.mts', |
||
| 506 | 'mus' => 'application/vnd.musician', |
||
| 507 | 'musicxml' => 'application/vnd.recordare.musicxml+xml', |
||
| 508 | 'mvb' => 'application/x-msmediaview', |
||
| 509 | 'mwf' => 'application/vnd.mfer', |
||
| 510 | 'mxf' => 'application/mxf', |
||
| 511 | 'mxl' => 'application/vnd.recordare.musicxml', |
||
| 512 | 'mxml' => 'application/xv+xml', |
||
| 513 | 'mxs' => 'application/vnd.triscape.mxs', |
||
| 514 | 'mxu' => 'video/vnd.mpegurl', |
||
| 515 | 'n-gage' => 'application/vnd.nokia.n-gage.symbian.install', |
||
| 516 | 'n3' => 'text/n3', |
||
| 517 | 'nb' => 'application/mathematica', |
||
| 518 | 'nbp' => 'application/vnd.wolfram.player', |
||
| 519 | 'nc' => 'application/x-netcdf', |
||
| 520 | 'ncx' => 'application/x-dtbncx+xml', |
||
| 521 | 'nfo' => 'text/x-nfo', |
||
| 522 | 'ngdat' => 'application/vnd.nokia.n-gage.data', |
||
| 523 | 'nitf' => 'application/vnd.nitf', |
||
| 524 | 'nlu' => 'application/vnd.neurolanguage.nlu', |
||
| 525 | 'nml' => 'application/vnd.enliven', |
||
| 526 | 'nnd' => 'application/vnd.noblenet-directory', |
||
| 527 | 'nns' => 'application/vnd.noblenet-sealer', |
||
| 528 | 'nnw' => 'application/vnd.noblenet-web', |
||
| 529 | 'npx' => 'image/vnd.net-fpx', |
||
| 530 | 'nsc' => 'application/x-conference', |
||
| 531 | 'nsf' => 'application/vnd.lotus-notes', |
||
| 532 | 'ntf' => 'application/vnd.nitf', |
||
| 533 | 'nzb' => 'application/x-nzb', |
||
| 534 | 'oa2' => 'application/vnd.fujitsu.oasys2', |
||
| 535 | 'oa3' => 'application/vnd.fujitsu.oasys3', |
||
| 536 | 'oas' => 'application/vnd.fujitsu.oasys', |
||
| 537 | 'obd' => 'application/x-msbinder', |
||
| 538 | 'obj' => 'application/x-tgif', |
||
| 539 | 'oda' => 'application/oda', |
||
| 540 | 'odb' => 'application/vnd.oasis.opendocument.database', |
||
| 541 | 'odc' => 'application/vnd.oasis.opendocument.chart', |
||
| 542 | 'odf' => 'application/vnd.oasis.opendocument.formula', |
||
| 543 | 'odft' => 'application/vnd.oasis.opendocument.formula-template', |
||
| 544 | 'odg' => 'application/vnd.oasis.opendocument.graphics', |
||
| 545 | 'odi' => 'application/vnd.oasis.opendocument.image', |
||
| 546 | 'odm' => 'application/vnd.oasis.opendocument.text-master', |
||
| 547 | 'odp' => 'application/vnd.oasis.opendocument.presentation', |
||
| 548 | 'ods' => 'application/vnd.oasis.opendocument.spreadsheet', |
||
| 549 | 'odt' => 'application/vnd.oasis.opendocument.text', |
||
| 550 | 'oga' => 'audio/ogg', |
||
| 551 | 'ogg' => 'audio/ogg', |
||
| 552 | 'ogv' => 'video/ogg', |
||
| 553 | 'ogx' => 'application/ogg', |
||
| 554 | 'omdoc' => 'application/omdoc+xml', |
||
| 555 | 'onepkg' => 'application/onenote', |
||
| 556 | 'onetmp' => 'application/onenote', |
||
| 557 | 'onetoc' => 'application/onenote', |
||
| 558 | 'onetoc2' => 'application/onenote', |
||
| 559 | 'opf' => 'application/oebps-package+xml', |
||
| 560 | 'opml' => 'text/x-opml', |
||
| 561 | 'oprc' => 'application/vnd.palm', |
||
| 562 | 'opus' => 'audio/ogg', |
||
| 563 | 'org' => 'application/vnd.lotus-organizer', |
||
| 564 | 'osf' => 'application/vnd.yamaha.openscoreformat', |
||
| 565 | 'osfpvg' => 'application/vnd.yamaha.openscoreformat.osfpvg+xml', |
||
| 566 | 'otc' => 'application/vnd.oasis.opendocument.chart-template', |
||
| 567 | 'otf' => 'font/otf', |
||
| 568 | 'otg' => 'application/vnd.oasis.opendocument.graphics-template', |
||
| 569 | 'oth' => 'application/vnd.oasis.opendocument.text-web', |
||
| 570 | 'oti' => 'application/vnd.oasis.opendocument.image-template', |
||
| 571 | 'otp' => 'application/vnd.oasis.opendocument.presentation-template', |
||
| 572 | 'ots' => 'application/vnd.oasis.opendocument.spreadsheet-template', |
||
| 573 | 'ott' => 'application/vnd.oasis.opendocument.text-template', |
||
| 574 | 'oxps' => 'application/oxps', |
||
| 575 | 'oxt' => 'application/vnd.openofficeorg.extension', |
||
| 576 | 'p' => 'text/x-pascal', |
||
| 577 | 'p10' => 'application/pkcs10', |
||
| 578 | 'p12' => 'application/x-pkcs12', |
||
| 579 | 'p7b' => 'application/x-pkcs7-certificates', |
||
| 580 | 'p7c' => 'application/pkcs7-mime', |
||
| 581 | 'p7m' => 'application/pkcs7-mime', |
||
| 582 | 'p7r' => 'application/x-pkcs7-certreqresp', |
||
| 583 | 'p7s' => 'application/pkcs7-signature', |
||
| 584 | 'p8' => 'application/pkcs8', |
||
| 585 | 'pas' => 'text/x-pascal', |
||
| 586 | 'paw' => 'application/vnd.pawaafile', |
||
| 587 | 'pbd' => 'application/vnd.powerbuilder6', |
||
| 588 | 'pbm' => 'image/x-portable-bitmap', |
||
| 589 | 'pcap' => 'application/vnd.tcpdump.pcap', |
||
| 590 | 'pcf' => 'application/x-font-pcf', |
||
| 591 | 'pcl' => 'application/vnd.hp-pcl', |
||
| 592 | 'pclxl' => 'application/vnd.hp-pclxl', |
||
| 593 | 'pct' => 'image/x-pict', |
||
| 594 | 'pcurl' => 'application/vnd.curl.pcurl', |
||
| 595 | 'pcx' => 'image/x-pcx', |
||
| 596 | 'pdb' => 'application/vnd.palm', |
||
| 597 | 'pdf' => 'application/pdf', |
||
| 598 | 'pfa' => 'application/x-font-type1', |
||
| 599 | 'pfb' => 'application/x-font-type1', |
||
| 600 | 'pfm' => 'application/x-font-type1', |
||
| 601 | 'pfr' => 'application/font-tdpfr', |
||
| 602 | 'pfx' => 'application/x-pkcs12', |
||
| 603 | 'pgm' => 'image/x-portable-graymap', |
||
| 604 | 'pgn' => 'application/x-chess-pgn', |
||
| 605 | 'pgp' => 'application/pgp-encrypted', |
||
| 606 | 'pic' => 'image/x-pict', |
||
| 607 | 'pkg' => 'application/octet-stream', |
||
| 608 | 'pki' => 'application/pkixcmp', |
||
| 609 | 'pkipath' => 'application/pkix-pkipath', |
||
| 610 | 'plb' => 'application/vnd.3gpp.pic-bw-large', |
||
| 611 | 'plc' => 'application/vnd.mobius.plc', |
||
| 612 | 'plf' => 'application/vnd.pocketlearn', |
||
| 613 | 'pls' => 'application/pls+xml', |
||
| 614 | 'pml' => 'application/vnd.ctc-posml', |
||
| 615 | 'png' => 'image/png', |
||
| 616 | 'pnm' => 'image/x-portable-anymap', |
||
| 617 | 'portpkg' => 'application/vnd.macports.portpkg', |
||
| 618 | 'pot' => 'application/vnd.ms-powerpoint', |
||
| 619 | 'potm' => 'application/vnd.ms-powerpoint.template.macroenabled.12', |
||
| 620 | 'potx' => 'application/vnd.openxmlformats-officedocument.presentationml.template', |
||
| 621 | 'ppam' => 'application/vnd.ms-powerpoint.addin.macroenabled.12', |
||
| 622 | 'ppd' => 'application/vnd.cups-ppd', |
||
| 623 | 'ppm' => 'image/x-portable-pixmap', |
||
| 624 | 'pps' => 'application/vnd.ms-powerpoint', |
||
| 625 | 'ppsm' => 'application/vnd.ms-powerpoint.slideshow.macroenabled.12', |
||
| 626 | 'ppsx' => 'application/vnd.openxmlformats-officedocument.presentationml.slideshow', |
||
| 627 | 'ppt' => 'application/vnd.ms-powerpoint', |
||
| 628 | 'pptm' => 'application/vnd.ms-powerpoint.presentation.macroenabled.12', |
||
| 629 | 'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation', |
||
| 630 | 'pqa' => 'application/vnd.palm', |
||
| 631 | 'prc' => 'application/x-mobipocket-ebook', |
||
| 632 | 'pre' => 'application/vnd.lotus-freelance', |
||
| 633 | 'prf' => 'application/pics-rules', |
||
| 634 | 'ps' => 'application/postscript', |
||
| 635 | 'psb' => 'application/vnd.3gpp.pic-bw-small', |
||
| 636 | 'psd' => 'image/vnd.adobe.photoshop', |
||
| 637 | 'psf' => 'application/x-font-linux-psf', |
||
| 638 | 'pskcxml' => 'application/pskc+xml', |
||
| 639 | 'ptid' => 'application/vnd.pvi.ptid1', |
||
| 640 | 'pub' => 'application/x-mspublisher', |
||
| 641 | 'pvb' => 'application/vnd.3gpp.pic-bw-var', |
||
| 642 | 'pwn' => 'application/vnd.3m.post-it-notes', |
||
| 643 | 'pya' => 'audio/vnd.ms-playready.media.pya', |
||
| 644 | 'pyv' => 'video/vnd.ms-playready.media.pyv', |
||
| 645 | 'qam' => 'application/vnd.epson.quickanime', |
||
| 646 | 'qbo' => 'application/vnd.intu.qbo', |
||
| 647 | 'qfx' => 'application/vnd.intu.qfx', |
||
| 648 | 'qps' => 'application/vnd.publishare-delta-tree', |
||
| 649 | 'qt' => 'video/quicktime', |
||
| 650 | 'qwd' => 'application/vnd.quark.quarkxpress', |
||
| 651 | 'qwt' => 'application/vnd.quark.quarkxpress', |
||
| 652 | 'qxb' => 'application/vnd.quark.quarkxpress', |
||
| 653 | 'qxd' => 'application/vnd.quark.quarkxpress', |
||
| 654 | 'qxl' => 'application/vnd.quark.quarkxpress', |
||
| 655 | 'qxt' => 'application/vnd.quark.quarkxpress', |
||
| 656 | 'ra' => 'audio/x-pn-realaudio', |
||
| 657 | 'ram' => 'audio/x-pn-realaudio', |
||
| 658 | 'rar' => 'application/x-rar-compressed', |
||
| 659 | 'ras' => 'image/x-cmu-raster', |
||
| 660 | 'rcprofile' => 'application/vnd.ipunplugged.rcprofile', |
||
| 661 | 'rdf' => 'application/rdf+xml', |
||
| 662 | 'rdz' => 'application/vnd.data-vision.rdz', |
||
| 663 | 'rep' => 'application/vnd.businessobjects', |
||
| 664 | 'res' => 'application/x-dtbresource+xml', |
||
| 665 | 'rgb' => 'image/x-rgb', |
||
| 666 | 'rif' => 'application/reginfo+xml', |
||
| 667 | 'rip' => 'audio/vnd.rip', |
||
| 668 | 'ris' => 'application/x-research-info-systems', |
||
| 669 | 'rl' => 'application/resource-lists+xml', |
||
| 670 | 'rlc' => 'image/vnd.fujixerox.edmics-rlc', |
||
| 671 | 'rld' => 'application/resource-lists-diff+xml', |
||
| 672 | 'rm' => 'application/vnd.rn-realmedia', |
||
| 673 | 'rmi' => 'audio/midi', |
||
| 674 | 'rmp' => 'audio/x-pn-realaudio-plugin', |
||
| 675 | 'rms' => 'application/vnd.jcp.javame.midlet-rms', |
||
| 676 | 'rmvb' => 'application/vnd.rn-realmedia-vbr', |
||
| 677 | 'rnc' => 'application/relax-ng-compact-syntax', |
||
| 678 | 'roa' => 'application/rpki-roa', |
||
| 679 | 'roff' => 'text/troff', |
||
| 680 | 'rp9' => 'application/vnd.cloanto.rp9', |
||
| 681 | 'rpss' => 'application/vnd.nokia.radio-presets', |
||
| 682 | 'rpst' => 'application/vnd.nokia.radio-preset', |
||
| 683 | 'rq' => 'application/sparql-query', |
||
| 684 | 'rs' => 'application/rls-services+xml', |
||
| 685 | 'rsd' => 'application/rsd+xml', |
||
| 686 | 'rss' => 'application/rss+xml', |
||
| 687 | 'rtf' => 'application/rtf', |
||
| 688 | 'rtx' => 'text/richtext', |
||
| 689 | 's' => 'text/x-asm', |
||
| 690 | 's3m' => 'audio/s3m', |
||
| 691 | 'saf' => 'application/vnd.yamaha.smaf-audio', |
||
| 692 | 'sbml' => 'application/sbml+xml', |
||
| 693 | 'sc' => 'application/vnd.ibm.secure-container', |
||
| 694 | 'scd' => 'application/x-msschedule', |
||
| 695 | 'scm' => 'application/vnd.lotus-screencam', |
||
| 696 | 'scq' => 'application/scvp-cv-request', |
||
| 697 | 'scs' => 'application/scvp-cv-response', |
||
| 698 | 'scurl' => 'text/vnd.curl.scurl', |
||
| 699 | 'sda' => 'application/vnd.stardivision.draw', |
||
| 700 | 'sdc' => 'application/vnd.stardivision.calc', |
||
| 701 | 'sdd' => 'application/vnd.stardivision.impress', |
||
| 702 | 'sdkd' => 'application/vnd.solent.sdkm+xml', |
||
| 703 | 'sdkm' => 'application/vnd.solent.sdkm+xml', |
||
| 704 | 'sdp' => 'application/sdp', |
||
| 705 | 'sdw' => 'application/vnd.stardivision.writer', |
||
| 706 | 'see' => 'application/vnd.seemail', |
||
| 707 | 'seed' => 'application/vnd.fdsn.seed', |
||
| 708 | 'sema' => 'application/vnd.sema', |
||
| 709 | 'semd' => 'application/vnd.semd', |
||
| 710 | 'semf' => 'application/vnd.semf', |
||
| 711 | 'ser' => 'application/java-serialized-object', |
||
| 712 | 'setpay' => 'application/set-payment-initiation', |
||
| 713 | 'setreg' => 'application/set-registration-initiation', |
||
| 714 | 'sfd-hdstx' => 'application/vnd.hydrostatix.sof-data', |
||
| 715 | 'sfs' => 'application/vnd.spotfire.sfs', |
||
| 716 | 'sfv' => 'text/x-sfv', |
||
| 717 | 'sgi' => 'image/sgi', |
||
| 718 | 'sgl' => 'application/vnd.stardivision.writer-global', |
||
| 719 | 'sgm' => 'text/sgml', |
||
| 720 | 'sgml' => 'text/sgml', |
||
| 721 | 'sh' => 'application/x-sh', |
||
| 722 | 'shar' => 'application/x-shar', |
||
| 723 | 'shf' => 'application/shf+xml', |
||
| 724 | 'sid' => 'image/x-mrsid-image', |
||
| 725 | 'sig' => 'application/pgp-signature', |
||
| 726 | 'sil' => 'audio/silk', |
||
| 727 | 'silo' => 'model/mesh', |
||
| 728 | 'sis' => 'application/vnd.symbian.install', |
||
| 729 | 'sisx' => 'application/vnd.symbian.install', |
||
| 730 | 'sit' => 'application/x-stuffit', |
||
| 731 | 'sitx' => 'application/x-stuffitx', |
||
| 732 | 'skd' => 'application/vnd.koan', |
||
| 733 | 'skm' => 'application/vnd.koan', |
||
| 734 | 'skp' => 'application/vnd.koan', |
||
| 735 | 'skt' => 'application/vnd.koan', |
||
| 736 | 'sldm' => 'application/vnd.ms-powerpoint.slide.macroenabled.12', |
||
| 737 | 'sldx' => 'application/vnd.openxmlformats-officedocument.presentationml.slide', |
||
| 738 | 'slt' => 'application/vnd.epson.salt', |
||
| 739 | 'sm' => 'application/vnd.stepmania.stepchart', |
||
| 740 | 'smf' => 'application/vnd.stardivision.math', |
||
| 741 | 'smi' => 'application/smil+xml', |
||
| 742 | 'smil' => 'application/smil+xml', |
||
| 743 | 'smv' => 'video/x-smv', |
||
| 744 | 'smzip' => 'application/vnd.stepmania.package', |
||
| 745 | 'snd' => 'audio/basic', |
||
| 746 | 'snf' => 'application/x-font-snf', |
||
| 747 | 'so' => 'application/octet-stream', |
||
| 748 | 'spc' => 'application/x-pkcs7-certificates', |
||
| 749 | 'spf' => 'application/vnd.yamaha.smaf-phrase', |
||
| 750 | 'spl' => 'application/x-futuresplash', |
||
| 751 | 'spot' => 'text/vnd.in3d.spot', |
||
| 752 | 'spp' => 'application/scvp-vp-response', |
||
| 753 | 'spq' => 'application/scvp-vp-request', |
||
| 754 | 'spx' => 'audio/ogg', |
||
| 755 | 'sql' => 'application/x-sql', |
||
| 756 | 'src' => 'application/x-wais-source', |
||
| 757 | 'srt' => 'application/x-subrip', |
||
| 758 | 'sru' => 'application/sru+xml', |
||
| 759 | 'srx' => 'application/sparql-results+xml', |
||
| 760 | 'ssdl' => 'application/ssdl+xml', |
||
| 761 | 'sse' => 'application/vnd.kodak-descriptor', |
||
| 762 | 'ssf' => 'application/vnd.epson.ssf', |
||
| 763 | 'ssml' => 'application/ssml+xml', |
||
| 764 | 'st' => 'application/vnd.sailingtracker.track', |
||
| 765 | 'stc' => 'application/vnd.sun.xml.calc.template', |
||
| 766 | 'std' => 'application/vnd.sun.xml.draw.template', |
||
| 767 | 'stf' => 'application/vnd.wt.stf', |
||
| 768 | 'sti' => 'application/vnd.sun.xml.impress.template', |
||
| 769 | 'stk' => 'application/hyperstudio', |
||
| 770 | 'stl' => 'application/vnd.ms-pki.stl', |
||
| 771 | 'str' => 'application/vnd.pg.format', |
||
| 772 | 'stw' => 'application/vnd.sun.xml.writer.template', |
||
| 773 | 'sub' => 'image/vnd.dvb.subtitle', |
||
| 774 | 'sub' => 'text/vnd.dvb.subtitle', |
||
| 775 | 'sus' => 'application/vnd.sus-calendar', |
||
| 776 | 'susp' => 'application/vnd.sus-calendar', |
||
| 777 | 'sv4cpio' => 'application/x-sv4cpio', |
||
| 778 | 'sv4crc' => 'application/x-sv4crc', |
||
| 779 | 'svc' => 'application/vnd.dvb.service', |
||
| 780 | 'svd' => 'application/vnd.svd', |
||
| 781 | 'svg' => 'image/svg+xml', |
||
| 782 | 'svgz' => 'image/svg+xml', |
||
| 783 | 'swa' => 'application/x-director', |
||
| 784 | 'swf' => 'application/x-shockwave-flash', |
||
| 785 | 'swi' => 'application/vnd.aristanetworks.swi', |
||
| 786 | 'sxc' => 'application/vnd.sun.xml.calc', |
||
| 787 | 'sxd' => 'application/vnd.sun.xml.draw', |
||
| 788 | 'sxg' => 'application/vnd.sun.xml.writer.global', |
||
| 789 | 'sxi' => 'application/vnd.sun.xml.impress', |
||
| 790 | 'sxm' => 'application/vnd.sun.xml.math', |
||
| 791 | 'sxw' => 'application/vnd.sun.xml.writer', |
||
| 792 | 't' => 'text/troff', |
||
| 793 | 't3' => 'application/x-t3vm-image', |
||
| 794 | 'taglet' => 'application/vnd.mynfc', |
||
| 795 | 'tao' => 'application/vnd.tao.intent-module-archive', |
||
| 796 | 'tar' => 'application/x-tar', |
||
| 797 | 'tcap' => 'application/vnd.3gpp2.tcap', |
||
| 798 | 'tcl' => 'application/x-tcl', |
||
| 799 | 'teacher' => 'application/vnd.smart.teacher', |
||
| 800 | 'tei' => 'application/tei+xml', |
||
| 801 | 'teicorpus' => 'application/tei+xml', |
||
| 802 | 'tex' => 'application/x-tex', |
||
| 803 | 'texi' => 'application/x-texinfo', |
||
| 804 | 'texinfo' => 'application/x-texinfo', |
||
| 805 | 'text' => 'text/plain', |
||
| 806 | 'tfi' => 'application/thraud+xml', |
||
| 807 | 'tfm' => 'application/x-tex-tfm', |
||
| 808 | 'tga' => 'image/x-tga', |
||
| 809 | 'thmx' => 'application/vnd.ms-officetheme', |
||
| 810 | 'tif' => 'image/tiff', |
||
| 811 | 'tiff' => 'image/tiff', |
||
| 812 | 'tmo' => 'application/vnd.tmobile-livetv', |
||
| 813 | 'torrent' => 'application/x-bittorrent', |
||
| 814 | 'tpl' => 'application/vnd.groove-tool-template', |
||
| 815 | 'tpt' => 'application/vnd.trid.tpt', |
||
| 816 | 'tr' => 'text/troff', |
||
| 817 | 'tra' => 'application/vnd.trueapp', |
||
| 818 | 'trm' => 'application/x-msterminal', |
||
| 819 | 'tsd' => 'application/timestamped-data', |
||
| 820 | 'tsv' => 'text/tab-separated-values', |
||
| 821 | 'ttc' => 'font/collection', |
||
| 822 | 'ttf' => 'font/ttf', |
||
| 823 | 'ttl' => 'text/turtle', |
||
| 824 | 'twd' => 'application/vnd.simtech-mindmapper', |
||
| 825 | 'twds' => 'application/vnd.simtech-mindmapper', |
||
| 826 | 'txd' => 'application/vnd.genomatix.tuxedo', |
||
| 827 | 'txf' => 'application/vnd.mobius.txf', |
||
| 828 | 'txt' => 'text/plain', |
||
| 829 | 'u32' => 'application/x-authorware-bin', |
||
| 830 | 'udeb' => 'application/x-debian-package', |
||
| 831 | 'ufd' => 'application/vnd.ufdl', |
||
| 832 | 'ufdl' => 'application/vnd.ufdl', |
||
| 833 | 'ulx' => 'application/x-glulx', |
||
| 834 | 'umj' => 'application/vnd.umajin', |
||
| 835 | 'unityweb' => 'application/vnd.unity', |
||
| 836 | 'uoml' => 'application/vnd.uoml+xml', |
||
| 837 | 'uri' => 'text/uri-list', |
||
| 838 | 'uris' => 'text/uri-list', |
||
| 839 | 'urls' => 'text/uri-list', |
||
| 840 | 'ustar' => 'application/x-ustar', |
||
| 841 | 'utz' => 'application/vnd.uiq.theme', |
||
| 842 | 'uu' => 'text/x-uuencode', |
||
| 843 | 'uva' => 'audio/vnd.dece.audio', |
||
| 844 | 'uvd' => 'application/vnd.dece.data', |
||
| 845 | 'uvf' => 'application/vnd.dece.data', |
||
| 846 | 'uvg' => 'image/vnd.dece.graphic', |
||
| 847 | 'uvh' => 'video/vnd.dece.hd', |
||
| 848 | 'uvi' => 'image/vnd.dece.graphic', |
||
| 849 | 'uvm' => 'video/vnd.dece.mobile', |
||
| 850 | 'uvp' => 'video/vnd.dece.pd', |
||
| 851 | 'uvs' => 'video/vnd.dece.sd', |
||
| 852 | 'uvt' => 'application/vnd.dece.ttml+xml', |
||
| 853 | 'uvu' => 'video/vnd.uvvu.mp4', |
||
| 854 | 'uvv' => 'video/vnd.dece.video', |
||
| 855 | 'uvva' => 'audio/vnd.dece.audio', |
||
| 856 | 'uvvd' => 'application/vnd.dece.data', |
||
| 857 | 'uvvf' => 'application/vnd.dece.data', |
||
| 858 | 'uvvg' => 'image/vnd.dece.graphic', |
||
| 859 | 'uvvh' => 'video/vnd.dece.hd', |
||
| 860 | 'uvvi' => 'image/vnd.dece.graphic', |
||
| 861 | 'uvvm' => 'video/vnd.dece.mobile', |
||
| 862 | 'uvvp' => 'video/vnd.dece.pd', |
||
| 863 | 'uvvs' => 'video/vnd.dece.sd', |
||
| 864 | 'uvvt' => 'application/vnd.dece.ttml+xml', |
||
| 865 | 'uvvu' => 'video/vnd.uvvu.mp4', |
||
| 866 | 'uvvv' => 'video/vnd.dece.video', |
||
| 867 | 'uvvx' => 'application/vnd.dece.unspecified', |
||
| 868 | 'uvvz' => 'application/vnd.dece.zip', |
||
| 869 | 'uvx' => 'application/vnd.dece.unspecified', |
||
| 870 | 'uvz' => 'application/vnd.dece.zip', |
||
| 871 | 'vcard' => 'text/vcard', |
||
| 872 | 'vcd' => 'application/x-cdlink', |
||
| 873 | 'vcf' => 'text/x-vcard', |
||
| 874 | 'vcg' => 'application/vnd.groove-vcard', |
||
| 875 | 'vcs' => 'text/x-vcalendar', |
||
| 876 | 'vcx' => 'application/vnd.vcx', |
||
| 877 | 'vis' => 'application/vnd.visionary', |
||
| 878 | 'viv' => 'video/vnd.vivo', |
||
| 879 | 'vob' => 'video/x-ms-vob', |
||
| 880 | 'vor' => 'application/vnd.stardivision.writer', |
||
| 881 | 'vox' => 'application/x-authorware-bin', |
||
| 882 | 'vrml' => 'model/vrml', |
||
| 883 | 'vsd' => 'application/vnd.visio', |
||
| 884 | 'vsf' => 'application/vnd.vsf', |
||
| 885 | 'vss' => 'application/vnd.visio', |
||
| 886 | 'vst' => 'application/vnd.visio', |
||
| 887 | 'vsw' => 'application/vnd.visio', |
||
| 888 | 'vtu' => 'model/vnd.vtu', |
||
| 889 | 'vxml' => 'application/voicexml+xml', |
||
| 890 | 'w3d' => 'application/x-director', |
||
| 891 | 'wad' => 'application/x-doom', |
||
| 892 | 'wav' => 'audio/x-wav', |
||
| 893 | 'wax' => 'audio/x-ms-wax', |
||
| 894 | 'wbmp' => 'image/vnd.wap.wbmp', |
||
| 895 | 'wbs' => 'application/vnd.criticaltools.wbs+xml', |
||
| 896 | 'wbxml' => 'application/vnd.wap.wbxml', |
||
| 897 | 'wcm' => 'application/vnd.ms-works', |
||
| 898 | 'wdb' => 'application/vnd.ms-works', |
||
| 899 | 'wdp' => 'image/vnd.ms-photo', |
||
| 900 | 'weba' => 'audio/webm', |
||
| 901 | 'webm' => 'video/webm', |
||
| 902 | 'webp' => 'image/webp', |
||
| 903 | 'wg' => 'application/vnd.pmi.widget', |
||
| 904 | 'wgt' => 'application/widget', |
||
| 905 | 'wks' => 'application/vnd.ms-works', |
||
| 906 | 'wm' => 'video/x-ms-wm', |
||
| 907 | 'wma' => 'audio/x-ms-wma', |
||
| 908 | 'wmd' => 'application/x-ms-wmd', |
||
| 909 | 'wmf' => 'application/x-msmetafile', |
||
| 910 | 'wml' => 'text/vnd.wap.wml', |
||
| 911 | 'wmlc' => 'application/vnd.wap.wmlc', |
||
| 912 | 'wmls' => 'text/vnd.wap.wmlscript', |
||
| 913 | 'wmlsc' => 'application/vnd.wap.wmlscriptc', |
||
| 914 | 'wmv' => 'video/x-ms-wmv', |
||
| 915 | 'wmx' => 'video/x-ms-wmx', |
||
| 916 | 'wmz' => 'application/x-ms-wmz', |
||
| 917 | 'wmz' => 'application/x-msmetafile', |
||
| 918 | 'woff' => 'font/woff', |
||
| 919 | 'woff2' => 'font/woff2', |
||
| 920 | 'wpd' => 'application/vnd.wordperfect', |
||
| 921 | 'wpl' => 'application/vnd.ms-wpl', |
||
| 922 | 'wps' => 'application/vnd.ms-works', |
||
| 923 | 'wqd' => 'application/vnd.wqd', |
||
| 924 | 'wri' => 'application/x-mswrite', |
||
| 925 | 'wrl' => 'model/vrml', |
||
| 926 | 'wsdl' => 'application/wsdl+xml', |
||
| 927 | 'wspolicy' => 'application/wspolicy+xml', |
||
| 928 | 'wtb' => 'application/vnd.webturbo', |
||
| 929 | 'wvx' => 'video/x-ms-wvx', |
||
| 930 | 'x32' => 'application/x-authorware-bin', |
||
| 931 | 'x3d' => 'model/x3d+xml', |
||
| 932 | 'x3db' => 'model/x3d+binary', |
||
| 933 | 'x3dbz' => 'model/x3d+binary', |
||
| 934 | 'x3dv' => 'model/x3d+vrml', |
||
| 935 | 'x3dvz' => 'model/x3d+vrml', |
||
| 936 | 'x3dz' => 'model/x3d+xml', |
||
| 937 | 'xaml' => 'application/xaml+xml', |
||
| 938 | 'xap' => 'application/x-silverlight-app', |
||
| 939 | 'xar' => 'application/vnd.xara', |
||
| 940 | 'xbap' => 'application/x-ms-xbap', |
||
| 941 | 'xbd' => 'application/vnd.fujixerox.docuworks.binder', |
||
| 942 | 'xbm' => 'image/x-xbitmap', |
||
| 943 | 'xdf' => 'application/xcap-diff+xml', |
||
| 944 | 'xdm' => 'application/vnd.syncml.dm+xml', |
||
| 945 | 'xdp' => 'application/vnd.adobe.xdp+xml', |
||
| 946 | 'xdssc' => 'application/dssc+xml', |
||
| 947 | 'xdw' => 'application/vnd.fujixerox.docuworks', |
||
| 948 | 'xenc' => 'application/xenc+xml', |
||
| 949 | 'xer' => 'application/patch-ops-error+xml', |
||
| 950 | 'xfdf' => 'application/vnd.adobe.xfdf', |
||
| 951 | 'xfdl' => 'application/vnd.xfdl', |
||
| 952 | 'xht' => 'application/xhtml+xml', |
||
| 953 | 'xhtml' => 'application/xhtml+xml', |
||
| 954 | 'xhvml' => 'application/xv+xml', |
||
| 955 | 'xif' => 'image/vnd.xiff', |
||
| 956 | 'xla' => 'application/vnd.ms-excel', |
||
| 957 | 'xlam' => 'application/vnd.ms-excel.addin.macroenabled.12', |
||
| 958 | 'xlc' => 'application/vnd.ms-excel', |
||
| 959 | 'xlf' => 'application/x-xliff+xml', |
||
| 960 | 'xlm' => 'application/vnd.ms-excel', |
||
| 961 | 'xls' => 'application/vnd.ms-excel', |
||
| 962 | 'xlsb' => 'application/vnd.ms-excel.sheet.binary.macroenabled.12', |
||
| 963 | 'xlsm' => 'application/vnd.ms-excel.sheet.macroenabled.12', |
||
| 964 | 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', |
||
| 965 | 'xlt' => 'application/vnd.ms-excel', |
||
| 966 | 'xltm' => 'application/vnd.ms-excel.template.macroenabled.12', |
||
| 967 | 'xltx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.template', |
||
| 968 | 'xlw' => 'application/vnd.ms-excel', |
||
| 969 | 'xm' => 'audio/xm', |
||
| 970 | 'xml' => 'application/xml', |
||
| 971 | 'xo' => 'application/vnd.olpc-sugar', |
||
| 972 | 'xop' => 'application/xop+xml', |
||
| 973 | 'xpi' => 'application/x-xpinstall', |
||
| 974 | 'xpl' => 'application/xproc+xml', |
||
| 975 | 'xpm' => 'image/x-xpixmap', |
||
| 976 | 'xpr' => 'application/vnd.is-xpr', |
||
| 977 | 'xps' => 'application/vnd.ms-xpsdocument', |
||
| 978 | 'xpw' => 'application/vnd.intercon.formnet', |
||
| 979 | 'xpx' => 'application/vnd.intercon.formnet', |
||
| 980 | 'xsl' => 'application/xml', |
||
| 981 | 'xslt' => 'application/xslt+xml', |
||
| 982 | 'xsm' => 'application/vnd.syncml+xml', |
||
| 983 | 'xspf' => 'application/xspf+xml', |
||
| 984 | 'xul' => 'application/vnd.mozilla.xul+xml', |
||
| 985 | 'xvm' => 'application/xv+xml', |
||
| 986 | 'xvml' => 'application/xv+xml', |
||
| 987 | 'xwd' => 'image/x-xwindowdump', |
||
| 988 | 'xyz' => 'chemical/x-xyz', |
||
| 989 | 'xz' => 'application/x-xz', |
||
| 990 | 'yang' => 'application/yang', |
||
| 991 | 'yin' => 'application/yin+xml', |
||
| 992 | 'z1' => 'application/x-zmachine', |
||
| 993 | 'z2' => 'application/x-zmachine', |
||
| 994 | 'z3' => 'application/x-zmachine', |
||
| 995 | 'z4' => 'application/x-zmachine', |
||
| 996 | 'z5' => 'application/x-zmachine', |
||
| 997 | 'z6' => 'application/x-zmachine', |
||
| 998 | 'z7' => 'application/x-zmachine', |
||
| 999 | 'z8' => 'application/x-zmachine', |
||
| 1000 | 'zaz' => 'application/vnd.zzazz.deck+xml', |
||
| 1001 | 'zip' => 'application/zip', |
||
| 1002 | 'zir' => 'application/vnd.zul', |
||
| 1003 | 'zirz' => 'application/vnd.zul', |
||
| 1004 | 'zmm' => 'application/vnd.handheld-entertainment+xml' |
||
| 1005 | ]; |
||
| 1006 | |||
| 1007 | /** |
||
| 1008 | * Undocumented function |
||
| 1009 | * |
||
| 1010 | * @param mixed $dispatcherStatus |
||
| 1011 | * @param HttpResponse $response |
||
| 1012 | * @param HttpRequest $request |
||
| 1013 | * @return MiddlewareResult |
||
| 1014 | */ |
||
| 1015 | 2 | public function beforeProcess( |
|
| 1016 | $dispatcherStatus, |
||
| 1017 | HttpResponse $response, |
||
| 1018 | HttpRequest $request |
||
| 1019 | ) |
||
| 1020 | { |
||
| 1021 | 2 | if ($dispatcherStatus != Dispatcher::NOT_FOUND) { |
|
| 1022 | return MiddlewareResult::continue(); |
||
| 1023 | } |
||
| 1024 | |||
| 1025 | 2 | $requestUri = new Uri($_SERVER['REQUEST_URI']); |
|
| 1026 | 2 | if ($requestUri->getScheme() === "file") { |
|
| 1027 | 2 | $file = $requestUri->getPath(); |
|
| 1028 | } else { |
||
| 1029 | $script = explode('/', $_SERVER['SCRIPT_FILENAME']); |
||
| 1030 | $script[count($script)-1] = ltrim($requestUri->getPath(), '/'); |
||
| 1031 | $file = implode('/', $script); |
||
| 1032 | } |
||
| 1033 | |||
| 1034 | 2 | if (file_exists($file)) { |
|
| 1035 | 2 | $mime = $this->mimeContentType($file); |
|
| 1036 | |||
| 1037 | 1 | if (empty($mime)) { |
|
| 1038 | return MiddlewareResult::continue(); |
||
| 1039 | } |
||
| 1040 | |||
| 1041 | 1 | $response->addHeader("Content-Type", $mime); |
|
| 1042 | 1 | $response->emptyResponse(); |
|
| 1043 | 1 | $response->getResponseBag()->setSerializationRule(ResponseBag::RAW); |
|
| 1044 | 1 | $response->write(file_get_contents($file)); |
|
| 1045 | 1 | return MiddlewareResult::stopProcessingOthers(HtmlOutputProcessor::class); |
|
|
0 ignored issues
–
show
|
|||
| 1046 | } |
||
| 1047 | |||
| 1048 | return MiddlewareResult::continue(); |
||
| 1049 | } |
||
| 1050 | |||
| 1051 | /** |
||
| 1052 | * Get the Mime Type based on the filename |
||
| 1053 | * |
||
| 1054 | * @param string $filename |
||
| 1055 | * @return string |
||
| 1056 | */ |
||
| 1057 | 6 | public function mimeContentType($filename) |
|
| 1058 | { |
||
| 1059 | 6 | if (!file_exists($filename)) { |
|
| 1060 | 1 | return null; |
|
| 1061 | } |
||
| 1062 | |||
| 1063 | 5 | $prohibitedTypes = [ |
|
| 1064 | 5 | "php", |
|
| 1065 | 5 | "vb", |
|
| 1066 | 5 | "cs", |
|
| 1067 | 5 | "rb", |
|
| 1068 | 5 | "py", |
|
| 1069 | 5 | "py3", |
|
| 1070 | 5 | "lua" |
|
| 1071 | 5 | ]; |
|
| 1072 | |||
| 1073 | 5 | $ext = substr(strrchr($filename, "."), 1); |
|
| 1074 | 5 | if (in_array($ext, $prohibitedTypes)) { |
|
| 1075 | 1 | throw new Error415Exception("File type not supported"); |
|
| 1076 | } |
||
| 1077 | |||
| 1078 | 4 | if (!function_exists('finfo_open')) { |
|
| 1079 | throw new Error500Exception("ServerStaticMiddleware requires finfo extension"); |
||
| 1080 | } |
||
| 1081 | |||
| 1082 | 4 | return $this->getContentType($filename); |
|
| 1083 | } |
||
| 1084 | |||
| 1085 | 4 | private function getContentType($filename) |
|
| 1086 | { |
||
| 1087 | // get the file extension |
||
| 1088 | 4 | $ext = substr(strrchr($filename, "."), 1); |
|
| 1089 | |||
| 1090 | // check if the extension is in the list of known extensions else return the generic mime type |
||
| 1091 | 4 | if (array_key_exists($ext, $this->mimeTypes)) { |
|
| 1092 | 4 | return $this->mimeTypes[$ext]; |
|
| 1093 | } else { |
||
| 1094 | return 'application/octet-stream'; |
||
| 1095 | } |
||
| 1096 | } |
||
| 1097 | |||
| 1098 | } |
||
| 1099 |
This check compares calls to functions or methods with their respective definitions. If the call has more arguments than are defined, it raises an issue.
If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress. Please note the @ignore annotation hint above.