@RequestMapping(value = { "/downloading" }, method = { RequestMethod.POST, RequestMethod.GET })
public void insertNode(
HttpServletRequest request,
HttpServletResponse response,
// 获取Header里面的Range内容, 可选项, 可为空
@RequestHeader(name = "Range", required = false) String range) {
// 测试用文件
File file = new File("F:/F.zip");
// 设置Content-Type, 此处可以参考void org.apache.catalina.startup.Tomcat.addDefaultMimeTypeMappings(Context context)
// 采用的是扩展名判断Content-Type, 内容可以参考org.apache.catalina.startup.MimeTypeMappings.properties
String mimeType = request.getServletContext().getMimeType(file.getName());
response.setContentType(null != mimeType ? mimeType : "application/octet-stream; charset=UTF-8");
// 自定义文件名
response.setHeader("Content-Disposition", String.format("attachment; filename=%s", file.getName()));
response.setHeader("Accept-Ranges", "bytes");
try (
// 获取Response输出流
ServletOutputStream out = response.getOutputStream();
// 测试用文件出入流
InputStream fis = new FileInputStream(file);) {
// fis.available()可以获取有限数据流总大小, 但available()返回的是int类型, 适用于小于2 G的文件
// file.length()可以获取文件大小, 返回的是long类型, 适用于小于8.4215048E7 P的文件
long length = file.length(); // 获取数据流总大小
long from = 0, to = length - 1; // 定义有效数据流起始, 截止位置
if (null == range) {
response.setHeader("Content-Length", Long.toString(length));
} else {
response.setStatus(HttpServletResponse.SC_PARTIAL_CONTENT);
String[] ranges = range.replace("bytes=", "").split("-");
if (ranges.length > 0) from = Long.parseLong(ranges[0]);
if (ranges.length > 1) to = Long.parseLong(ranges[1]);
// 设置本批次数据大小
response.setHeader("Content-Length", Long.toString(to - from + 1L));
// 设置本批次数据范围及数据总大小
response.setHeader("Accept-Ranges", String.format("bytes %d-%d/%d", from, to, length));
}
fis.skip(from); // 跳过不需要的数据内容
long limit = to - from + 1; // 限制数据流大小, 最大等于文件大小
// 缓冲大小
int bufferSize = (int) (limit > 2048 ? 2048 : limit);
// 创建缓冲数组
byte[] buffer = new byte[bufferSize];
int num = 0;
while (0 < limit && (num = fis.read(buffer)) != -1) {
out.write(buffer, 0, num);
limit -= num;
if (limit < bufferSize) {
buffer = new byte[(int) limit];
}
}
response.flushBuffer();
} catch (IOException e) {
// TODO :: [远程主机强迫关闭了一个现有的连接。]... 等异常处理
}
}
# 内容摘自: org.apache.catalina.startup.MimeTypeMappings.properties
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
123=application/vnd.lotus-1-2-3
3dml=text/vnd.in3d.3dml
3ds=image/x-3ds
3g2=video/3gpp2
3gp=video/3gpp
7z=application/x-7z-compressed
aab=application/x-authorware-bin
aac=audio/x-aac
aam=application/x-authorware-map
aas=application/x-authorware-seg
abs=audio/x-mpeg
abw=application/x-abiword
ac=application/pkix-attr-cert
acc=application/vnd.americandynamics.acc
ace=application/x-ace-compressed
acu=application/vnd.acucobol
acutc=application/vnd.acucorp
adp=audio/adpcm
aep=application/vnd.audiograph
afm=application/x-font-type1
afp=application/vnd.ibm.modcap
ahead=application/vnd.ahead.space
ai=application/postscript
aif=audio/x-aiff
aifc=audio/x-aiff
aiff=audio/x-aiff
aim=application/x-aim
air=application/vnd.adobe.air-application-installer-package+zip
ait=application/vnd.dvb.ait
ami=application/vnd.amiga.ami
anx=application/annodex
apk=application/vnd.android.package-archive
appcache=text/cache-manifest
application=application/x-ms-application
apr=application/vnd.lotus-approach
arc=application/x-freearc
art=image/x-jg
asc=application/pgp-signature
asf=video/x-ms-asf
asm=text/x-asm
aso=application/vnd.accpac.simply.aso
asx=video/x-ms-asf
atc=application/vnd.acucorp
atom=application/atom+xml
atomcat=application/atomcat+xml
atomsvc=application/atomsvc+xml
atx=application/vnd.antix.game-component
au=audio/basic
avi=video/x-msvideo
avx=video/x-rad-screenplay
aw=application/applixware
axa=audio/annodex
axv=video/annodex
azf=application/vnd.airzip.filesecure.azf
azs=application/vnd.airzip.filesecure.azs
azw=application/vnd.amazon.ebook
bat=application/x-msdownload
bcpio=application/x-bcpio
bdf=application/x-font-bdf
bdm=application/vnd.syncml.dm+wbxml
bed=application/vnd.realvnc.bed
bh2=application/vnd.fujitsu.oasysprs
bin=application/octet-stream
blb=application/x-blorb
blorb=application/x-blorb
bmi=application/vnd.bmi
bmp=image/bmp
body=text/html
book=application/vnd.framemaker
box=application/vnd.previewsystems.box
boz=application/x-bzip2
bpk=application/octet-stream
btif=image/prs.btif
bz=application/x-bzip
bz2=application/x-bzip2
c=text/x-c
c11amc=application/vnd.cluetrust.cartomobile-config
c11amz=application/vnd.cluetrust.cartomobile-config-pkg
c4d=application/vnd.clonk.c4group
c4f=application/vnd.clonk.c4group
c4g=application/vnd.clonk.c4group
c4p=application/vnd.clonk.c4group
c4u=application/vnd.clonk.c4group
cab=application/vnd.ms-cab-compressed
caf=audio/x-caf
cap=application/vnd.tcpdump.pcap
car=application/vnd.curl.car
cat=application/vnd.ms-pki.seccat
cb7=application/x-cbr
cba=application/x-cbr
cbr=application/x-cbr
cbt=application/x-cbr
cbz=application/x-cbr
cc=text/x-c
cct=application/x-director
ccxml=application/ccxml+xml
cdbcmsg=application/vnd.contact.cmsg
cdf=application/x-cdf
cdkey=application/vnd.mediastation.cdkey
cdmia=application/cdmi-capability
cdmic=application/cdmi-container
cdmid=application/cdmi-domain
cdmio=application/cdmi-object
cdmiq=application/cdmi-queue
cdx=chemical/x-cdx
cdxml=application/vnd.chemdraw+xml
cdy=application/vnd.cinderella
cer=application/pkix-cert
cfs=application/x-cfs-compressed
cgm=image/cgm
chat=application/x-chat
chm=application/vnd.ms-htmlhelp
chrt=application/vnd.kde.kchart
cif=chemical/x-cif
cii=application/vnd.anser-web-certificate-issue-initiation
cil=application/vnd.ms-artgalry
cla=application/vnd.claymore
class=application/java
clkk=application/vnd.crick.clicker.keyboard
clkp=application/vnd.crick.clicker.palette
clkt=application/vnd.crick.clicker.template
clkw=application/vnd.crick.clicker.wordbank
clkx=application/vnd.crick.clicker
clp=application/x-msclip
cmc=application/vnd.cosmocaller
cmdf=chemical/x-cmdf
cml=chemical/x-cml
cmp=application/vnd.yellowriver-custom-menu
cmx=image/x-cmx
cod=application/vnd.rim.cod
com=application/x-msdownload
conf=text/plain
cpio=application/x-cpio
cpp=text/x-c
cpt=application/mac-compactpro
crd=application/x-mscardfile
crl=application/pkix-crl
crt=application/x-x509-ca-cert
cryptonote=application/vnd.rig.cryptonote
csh=application/x-csh
csml=chemical/x-csml
csp=application/vnd.commonspace
css=text/css
cst=application/x-director
csv=text/csv
cu=application/cu-seeme
curl=text/vnd.curl
cww=application/prs.cww
cxt=application/x-director
cxx=text/x-c
dae=model/vnd.collada+xml
daf=application/vnd.mobius.daf
dart=application/vnd.dart
dataless=application/vnd.fdsn.seed
davmount=application/davmount+xml
dbk=application/docbook+xml
dcr=application/x-director
dcurl=text/vnd.curl.dcurl
dd2=application/vnd.oma.dd2+xml
ddd=application/vnd.fujixerox.ddd
deb=application/x-debian-package
def=text/plain
deploy=application/octet-stream
der=application/x-x509-ca-cert
dfac=application/vnd.dreamfactory
dgc=application/x-dgc-compressed
dib=image/bmp
dic=text/x-c
dir=application/x-director
dis=application/vnd.mobius.dis
dist=application/octet-stream
distz=application/octet-stream
djv=image/vnd.djvu
djvu=image/vnd.djvu
dll=application/x-msdownload
dmg=application/x-apple-diskimage
dmp=application/vnd.tcpdump.pcap
dms=application/octet-stream
dna=application/vnd.dna
doc=application/msword
docm=application/vnd.ms-word.document.macroenabled.12
docx=application/vnd.openxmlformats-officedocument.wordprocessingml.document
dot=application/msword
dotm=application/vnd.ms-word.template.macroenabled.12
dotx=application/vnd.openxmlformats-officedocument.wordprocessingml.template
dp=application/vnd.osgi.dp
dpg=application/vnd.dpgraph
dra=audio/vnd.dra
dsc=text/prs.lines.tag
dssc=application/dssc+der
dtb=application/x-dtbook+xml
dtd=application/xml-dtd
dts=audio/vnd.dts
dtshd=audio/vnd.dts.hd
dump=application/octet-stream
dv=video/x-dv
dvb=video/vnd.dvb.file
dvi=application/x-dvi
dwf=model/vnd.dwf
dwg=image/vnd.dwg
dxf=image/vnd.dxf
dxp=application/vnd.spotfire.dxp
dxr=application/x-director
ecelp4800=audio/vnd.nuera.ecelp4800
ecelp7470=audio/vnd.nuera.ecelp7470
ecelp9600=audio/vnd.nuera.ecelp9600
ecma=application/ecmascript
edm=application/vnd.novadigm.edm
edx=application/vnd.novadigm.edx
efif=application/vnd.picsel
ei6=application/vnd.pg.osasli
elc=application/octet-stream
emf=application/x-msmetafile
eml=message/rfc822
emma=application/emma+xml
emz=application/x-msmetafile
eol=audio/vnd.digital-winds
eot=application/vnd.ms-fontobject
eps=application/postscript
epub=application/epub+zip
es3=application/vnd.eszigno3+xml
esa=application/vnd.osgi.subsystem
esf=application/vnd.epson.esf
et3=application/vnd.eszigno3+xml
etx=text/x-setext
eva=application/x-eva
evy=application/x-envoy
exe=application/octet-stream
exi=application/exi
ext=application/vnd.novadigm.ext
ez=application/andrew-inset
ez2=application/vnd.ezpix-album
ez3=application/vnd.ezpix-package
f=text/x-fortran
f4v=video/x-f4v
f77=text/x-fortran
f90=text/x-fortran
fbs=image/vnd.fastbidsheet
fcdt=application/vnd.adobe.formscentral.fcdt
fcs=application/vnd.isac.fcs
fdf=application/vnd.fdf
fe_launch=application/vnd.denovo.fcselayout-link
fg5=application/vnd.fujitsu.oasysgp
fgd=application/x-director
fh=image/x-freehand
fh4=image/x-freehand
fh5=image/x-freehand
fh7=image/x-freehand
fhc=image/x-freehand
fig=application/x-xfig
flac=audio/flac
fli=video/x-fli
flo=application/vnd.micrografx.flo
flv=video/x-flv
flw=application/vnd.kde.kivio
flx=text/vnd.fmi.flexstor
fly=text/vnd.fly
fm=application/vnd.framemaker
fnc=application/vnd.frogans.fnc
for=text/x-fortran
fpx=image/vnd.fpx
frame=application/vnd.framemaker
fsc=application/vnd.fsc.weblaunch
fst=image/vnd.fst
ftc=application/vnd.fluxtime.clip
fti=application/vnd.anser-web-funds-transfer-initiation
fvt=video/vnd.fvt
fxp=application/vnd.adobe.fxp
fxpl=application/vnd.adobe.fxp
fzs=application/vnd.fuzzysheet
g2w=application/vnd.geoplan
g3=image/g3fax
g3w=application/vnd.geospace
gac=application/vnd.groove-account
gam=application/x-tads
gbr=application/rpki-ghostbusters
gca=application/x-gca-compressed
gdl=model/vnd.gdl
geo=application/vnd.dynageo
gex=application/vnd.geometry-explorer
ggb=application/vnd.geogebra.file
ggt=application/vnd.geogebra.tool
ghf=application/vnd.groove-help
gif=image/gif
gim=application/vnd.groove-identity-message
gml=application/gml+xml
gmx=application/vnd.gmx
gnumeric=application/x-gnumeric
gph=application/vnd.flographit
gpx=application/gpx+xml
gqf=application/vnd.grafeq
gqs=application/vnd.grafeq
gram=application/srgs
gramps=application/x-gramps-xml
gre=application/vnd.geometry-explorer
grv=application/vnd.groove-injector
grxml=application/srgs+xml
gsf=application/x-font-ghostscript
gtar=application/x-gtar
gtm=application/vnd.groove-tool-message
gtw=model/vnd.gtw
gv=text/vnd.graphviz
gxf=application/gxf
gxt=application/vnd.geonext
gz=application/x-gzip
h=text/x-c
h261=video/h261
h263=video/h263
h264=video/h264
hal=application/vnd.hal+xml
hbci=application/vnd.hbci
hdf=application/x-hdf
hh=text/x-c
hlp=application/winhlp
hpgl=application/vnd.hp-hpgl
hpid=application/vnd.hp-hpid
hps=application/vnd.hp-hps
hqx=application/mac-binhex40
htc=text/x-component
htke=application/vnd.kenameaapp
htm=text/html
html=text/html
hvd=application/vnd.yamaha.hv-dic
hvp=application/vnd.yamaha.hv-voice
hvs=application/vnd.yamaha.hv-script
i2g=application/vnd.intergeo
icc=application/vnd.iccprofile
ice=x-conference/x-cooltalk
icm=application/vnd.iccprofile
ico=image/x-icon
ics=text/calendar
ief=image/ief
ifb=text/calendar
ifm=application/vnd.shana.informed.formdata
iges=model/iges
igl=application/vnd.igloader
igm=application/vnd.insors.igm
igs=model/iges
igx=application/vnd.micrografx.igx
iif=application/vnd.shana.informed.interchange
imp=application/vnd.accpac.simply.imp
ims=application/vnd.ms-ims
in=text/plain
ink=application/inkml+xml
inkml=application/inkml+xml
install=application/x-install-instructions
iota=application/vnd.astraea-software.iota
ipfix=application/ipfix
ipk=application/vnd.shana.informed.package
irm=application/vnd.ibm.rights-management
irp=application/vnd.irepository.package+xml
iso=application/x-iso9660-image
itp=application/vnd.shana.informed.formtemplate
ivp=application/vnd.immervision-ivp
ivu=application/vnd.immervision-ivu
jad=text/vnd.sun.j2me.app-descriptor
jam=application/vnd.jam
jar=application/java-archive
java=text/x-java-source
jisp=application/vnd.jisp
jlt=application/vnd.hp-jlyt
jnlp=application/x-java-jnlp-file
joda=application/vnd.joost.joda-archive
jpe=image/jpeg
jpeg=image/jpeg
jpg=image/jpeg
jpgm=video/jpm
jpgv=video/jpeg
jpm=video/jpm
js=application/javascript
jsf=text/plain
json=application/json
jsonml=application/jsonml+json
jspf=text/plain
kar=audio/midi
karbon=application/vnd.kde.karbon
kfo=application/vnd.kde.kformula
kia=application/vnd.kidspiration
kml=application/vnd.google-earth.kml+xml
kmz=application/vnd.google-earth.kmz
kne=application/vnd.kinar
knp=application/vnd.kinar
kon=application/vnd.kde.kontour
kpr=application/vnd.kde.kpresenter
kpt=application/vnd.kde.kpresenter
kpxx=application/vnd.ds-keypoint
ksp=application/vnd.kde.kspread
ktr=application/vnd.kahootz
ktx=image/ktx
ktz=application/vnd.kahootz
kwd=application/vnd.kde.kword
kwt=application/vnd.kde.kword
lasxml=application/vnd.las.las+xml
latex=application/x-latex
lbd=application/vnd.llamagraphics.life-balance.desktop
lbe=application/vnd.llamagraphics.life-balance.exchange+xml
les=application/vnd.hhe.lesson-player
lha=application/x-lzh-compressed
link66=application/vnd.route66.link66+xml
list=text/plain
list3820=application/vnd.ibm.modcap
listafp=application/vnd.ibm.modcap
lnk=application/x-ms-shortcut
log=text/plain
lostxml=application/lost+xml
lrf=application/octet-stream
lrm=application/vnd.ms-lrm
ltf=application/vnd.frogans.ltf
lvp=audio/vnd.lucent.voice
lwp=application/vnd.lotus-wordpro
lzh=application/x-lzh-compressed
m13=application/x-msmediaview
m14=application/x-msmediaview
m1v=video/mpeg
m21=application/mp21
m2a=audio/mpeg
m2v=video/mpeg
m3a=audio/mpeg
m3u=audio/x-mpegurl
m3u8=application/vnd.apple.mpegurl
m4a=audio/mp4
m4b=audio/mp4
m4r=audio/mp4
m4u=video/vnd.mpegurl
m4v=video/mp4
ma=application/mathematica
mac=image/x-macpaint
mads=application/mads+xml
mag=application/vnd.ecowin.chart
maker=application/vnd.framemaker
man=text/troff
mar=application/octet-stream
mathml=application/mathml+xml
mb=application/mathematica
mbk=application/vnd.mobius.mbk
mbox=application/mbox
mc1=application/vnd.medcalcdata
mcd=application/vnd.mcd
mcurl=text/vnd.curl.mcurl
mdb=application/x-msaccess
mdi=image/vnd.ms-modi
me=text/troff
mesh=model/mesh
meta4=application/metalink4+xml
metalink=application/metalink+xml
mets=application/mets+xml
mfm=application/vnd.mfmp
mft=application/rpki-manifest
mgp=application/vnd.osgeo.mapguide.package
mgz=application/vnd.proteus.magazine
mid=audio/midi
midi=audio/midi
mie=application/x-mie
mif=application/x-mif
mime=message/rfc822
mj2=video/mj2
mjp2=video/mj2
mk3d=video/x-matroska
mka=audio/x-matroska
mks=video/x-matroska
mkv=video/x-matroska
mlp=application/vnd.dolby.mlp
mmd=application/vnd.chipnuts.karaoke-mmd
mmf=application/vnd.smaf
mmr=image/vnd.fujixerox.edmics-mmr
mng=video/x-mng
mny=application/x-msmoney
mobi=application/x-mobipocket-ebook
mods=application/mods+xml
mov=video/quicktime
movie=video/x-sgi-movie
mp1=audio/mpeg
mp2=audio/mpeg
mp21=application/mp21
mp2a=audio/mpeg
mp3=audio/mpeg
mp4=video/mp4
mp4a=audio/mp4
mp4s=application/mp4
mp4v=video/mp4
mpa=audio/mpeg
mpc=application/vnd.mophun.certificate
mpe=video/mpeg
mpeg=video/mpeg
mpega=audio/x-mpeg
mpg=video/mpeg
mpg4=video/mp4
mpga=audio/mpeg
mpkg=application/vnd.apple.installer+xml
mpm=application/vnd.blueice.multipass
mpn=application/vnd.mophun.application
mpp=application/vnd.ms-project
mpt=application/vnd.ms-project
mpv2=video/mpeg2
mpy=application/vnd.ibm.minipay
mqy=application/vnd.mobius.mqy
mrc=application/marc
mrcx=application/marcxml+xml
ms=text/troff
mscml=application/mediaservercontrol+xml
mseed=application/vnd.fdsn.mseed
mseq=application/vnd.mseq
msf=application/vnd.epson.msf
msh=model/mesh
msi=application/x-msdownload
msl=application/vnd.mobius.msl
msty=application/vnd.muvee.style
mts=model/vnd.mts
mus=application/vnd.musician
musicxml=application/vnd.recordare.musicxml+xml
mvb=application/x-msmediaview
mwf=application/vnd.mfer
mxf=application/mxf
mxl=application/vnd.recordare.musicxml
mxml=application/xv+xml
mxs=application/vnd.triscape.mxs
mxu=video/vnd.mpegurl
n-gage=application/vnd.nokia.n-gage.symbian.install
n3=text/n3
nb=application/mathematica
nbp=application/vnd.wolfram.player
nc=application/x-netcdf
ncx=application/x-dtbncx+xml
nfo=text/x-nfo
ngdat=application/vnd.nokia.n-gage.data
nitf=application/vnd.nitf
nlu=application/vnd.neurolanguage.nlu
nml=application/vnd.enliven
nnd=application/vnd.noblenet-directory
nns=application/vnd.noblenet-sealer
nnw=application/vnd.noblenet-web
npx=image/vnd.net-fpx
nsc=application/x-conference
nsf=application/vnd.lotus-notes
ntf=application/vnd.nitf
nzb=application/x-nzb
oa2=application/vnd.fujitsu.oasys2
oa3=application/vnd.fujitsu.oasys3
oas=application/vnd.fujitsu.oasys
obd=application/x-msbinder
obj=application/x-tgif
oda=application/oda
odb=application/vnd.oasis.opendocument.database
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
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
oga=audio/ogg
ogg=audio/ogg
ogv=video/ogg
ogx=application/ogg
omdoc=application/omdoc+xml
onepkg=application/onenote
onetmp=application/onenote
onetoc=application/onenote
onetoc2=application/onenote
opf=application/oebps-package+xml
opml=text/x-opml
oprc=application/vnd.palm
org=application/vnd.lotus-organizer
osf=application/vnd.yamaha.openscoreformat
osfpvg=application/vnd.yamaha.openscoreformat.osfpvg+xml
otc=application/vnd.oasis.opendocument.chart-template
otf=font/otf
otg=application/vnd.oasis.opendocument.graphics-template
oth=application/vnd.oasis.opendocument.text-web
oti=application/vnd.oasis.opendocument.image-template
otp=application/vnd.oasis.opendocument.presentation-template
ots=application/vnd.oasis.opendocument.spreadsheet-template
ott=application/vnd.oasis.opendocument.text-template
oxps=application/oxps
oxt=application/vnd.openofficeorg.extension
p=text/x-pascal
p10=application/pkcs10
p12=application/x-pkcs12
p7b=application/x-pkcs7-certificates
p7c=application/pkcs7-mime
p7m=application/pkcs7-mime
p7r=application/x-pkcs7-certreqresp
p7s=application/pkcs7-signature
p8=application/pkcs8
pas=text/x-pascal
paw=application/vnd.pawaafile
pbd=application/vnd.powerbuilder6
pbm=image/x-portable-bitmap
pcap=application/vnd.tcpdump.pcap
pcf=application/x-font-pcf
pcl=application/vnd.hp-pcl
pclxl=application/vnd.hp-pclxl
pct=image/pict
pcurl=application/vnd.curl.pcurl
pcx=image/x-pcx
pdb=application/vnd.palm
pdf=application/pdf
pfa=application/x-font-type1
pfb=application/x-font-type1
pfm=application/x-font-type1
pfr=application/font-tdpfr
pfx=application/x-pkcs12
pgm=image/x-portable-graymap
pgn=application/x-chess-pgn
pgp=application/pgp-encrypted
pic=image/pict
pict=image/pict
pkg=application/octet-stream
pki=application/pkixcmp
pkipath=application/pkix-pkipath
plb=application/vnd.3gpp.pic-bw-large
plc=application/vnd.mobius.plc
plf=application/vnd.pocketlearn
pls=audio/x-scpls
pml=application/vnd.ctc-posml
png=image/png
pnm=image/x-portable-anymap
pnt=image/x-macpaint
portpkg=application/vnd.macports.portpkg
pot=application/vnd.ms-powerpoint
potm=application/vnd.ms-powerpoint.template.macroenabled.12
potx=application/vnd.openxmlformats-officedocument.presentationml.template
ppam=application/vnd.ms-powerpoint.addin.macroenabled.12
ppd=application/vnd.cups-ppd
ppm=image/x-portable-pixmap
pps=application/vnd.ms-powerpoint
ppsm=application/vnd.ms-powerpoint.slideshow.macroenabled.12
ppsx=application/vnd.openxmlformats-officedocument.presentationml.slideshow
ppt=application/vnd.ms-powerpoint
pptm=application/vnd.ms-powerpoint.presentation.macroenabled.12
pptx=application/vnd.openxmlformats-officedocument.presentationml.presentation
pqa=application/vnd.palm
prc=application/x-mobipocket-ebook
pre=application/vnd.lotus-freelance
prf=application/pics-rules
ps=application/postscript
psb=application/vnd.3gpp.pic-bw-small
psd=image/vnd.adobe.photoshop
psf=application/x-font-linux-psf
pskcxml=application/pskc+xml
ptid=application/vnd.pvi.ptid1
pub=application/x-mspublisher
pvb=application/vnd.3gpp.pic-bw-var
pwn=application/vnd.3m.post-it-notes
pya=audio/vnd.ms-playready.media.pya
pyv=video/vnd.ms-playready.media.pyv
qam=application/vnd.epson.quickanime
qbo=application/vnd.intu.qbo
qfx=application/vnd.intu.qfx
qps=application/vnd.publishare-delta-tree
qt=video/quicktime
qti=image/x-quicktime
qtif=image/x-quicktime
qwd=application/vnd.quark.quarkxpress
qwt=application/vnd.quark.quarkxpress
qxb=application/vnd.quark.quarkxpress
qxd=application/vnd.quark.quarkxpress
qxl=application/vnd.quark.quarkxpress
qxt=application/vnd.quark.quarkxpress
ra=audio/x-pn-realaudio
ram=audio/x-pn-realaudio
rar=application/x-rar-compressed
ras=image/x-cmu-raster
rcprofile=application/vnd.ipunplugged.rcprofile
rdf=application/rdf+xml
rdz=application/vnd.data-vision.rdz
rep=application/vnd.businessobjects
res=application/x-dtbresource+xml
rgb=image/x-rgb
rif=application/reginfo+xml
rip=audio/vnd.rip
ris=application/x-research-info-systems
rl=application/resource-lists+xml
rlc=image/vnd.fujixerox.edmics-rlc
rld=application/resource-lists-diff+xml
rm=application/vnd.rn-realmedia
rmi=audio/midi
rmp=audio/x-pn-realaudio-plugin
rms=application/vnd.jcp.javame.midlet-rms
rmvb=application/vnd.rn-realmedia-vbr
rnc=application/relax-ng-compact-syntax
roa=application/rpki-roa
roff=text/troff
rp9=application/vnd.cloanto.rp9
rpss=application/vnd.nokia.radio-presets
rpst=application/vnd.nokia.radio-preset
rq=application/sparql-query
rs=application/rls-services+xml
rsd=application/rsd+xml
rss=application/rss+xml
rtf=application/rtf
rtx=text/richtext
s=text/x-asm
s3m=audio/s3m
saf=application/vnd.yamaha.smaf-audio
sbml=application/sbml+xml
sc=application/vnd.ibm.secure-container
scd=application/x-msschedule
scm=application/vnd.lotus-screencam
scq=application/scvp-cv-request
scs=application/scvp-cv-response
scurl=text/vnd.curl.scurl
sda=application/vnd.stardivision.draw
sdc=application/vnd.stardivision.calc
sdd=application/vnd.stardivision.impress
sdkd=application/vnd.solent.sdkm+xml
sdkm=application/vnd.solent.sdkm+xml
sdp=application/sdp
sdw=application/vnd.stardivision.writer
see=application/vnd.seemail
seed=application/vnd.fdsn.seed
sema=application/vnd.sema
semd=application/vnd.semd
semf=application/vnd.semf
ser=application/java-serialized-object
setpay=application/set-payment-initiation
setreg=application/set-registration-initiation
sfd-hdstx=application/vnd.hydrostatix.sof-data
sfs=application/vnd.spotfire.sfs
sfv=text/x-sfv
sgi=image/sgi
sgl=application/vnd.stardivision.writer-global
sgm=text/sgml
sgml=text/sgml
sh=application/x-sh
shar=application/x-shar
shf=application/shf+xml
sid=image/x-mrsid-image
sig=application/pgp-signature
sil=audio/silk
silo=model/mesh
sis=application/vnd.symbian.install
sisx=application/vnd.symbian.install
sit=application/x-stuffit
sitx=application/x-stuffitx
skd=application/vnd.koan
skm=application/vnd.koan
skp=application/vnd.koan
skt=application/vnd.koan
sldm=application/vnd.ms-powerpoint.slide.macroenabled.12
sldx=application/vnd.openxmlformats-officedocument.presentationml.slide
slt=application/vnd.epson.salt
sm=application/vnd.stepmania.stepchart
smf=application/vnd.stardivision.math
smi=application/smil+xml
smil=application/smil+xml
smv=video/x-smv
smzip=application/vnd.stepmania.package
snd=audio/basic
snf=application/x-font-snf
so=application/octet-stream
spc=application/x-pkcs7-certificates
spf=application/vnd.yamaha.smaf-phrase
spl=application/x-futuresplash
spot=text/vnd.in3d.spot
spp=application/scvp-vp-response
spq=application/scvp-vp-request
spx=audio/ogg
sql=application/x-sql
src=application/x-wais-source
srt=application/x-subrip
sru=application/sru+xml
srx=application/sparql-results+xml
ssdl=application/ssdl+xml
sse=application/vnd.kodak-descriptor
ssf=application/vnd.epson.ssf
ssml=application/ssml+xml
st=application/vnd.sailingtracker.track
stc=application/vnd.sun.xml.calc.template
std=application/vnd.sun.xml.draw.template
stf=application/vnd.wt.stf
sti=application/vnd.sun.xml.impress.template
stk=application/hyperstudio
stl=application/vnd.ms-pki.stl
str=application/vnd.pg.format
stw=application/vnd.sun.xml.writer.template
sub=text/vnd.dvb.subtitle
sus=application/vnd.sus-calendar
susp=application/vnd.sus-calendar
sv4cpio=application/x-sv4cpio
sv4crc=application/x-sv4crc
svc=application/vnd.dvb.service
svd=application/vnd.svd
svg=image/svg+xml
svgz=image/svg+xml
swa=application/x-director
swf=application/x-shockwave-flash
swi=application/vnd.aristanetworks.swi
sxc=application/vnd.sun.xml.calc
sxd=application/vnd.sun.xml.draw
sxg=application/vnd.sun.xml.writer.global
sxi=application/vnd.sun.xml.impress
sxm=application/vnd.sun.xml.math
sxw=application/vnd.sun.xml.writer
t=text/troff
t3=application/x-t3vm-image
taglet=application/vnd.mynfc
tao=application/vnd.tao.intent-module-archive
tar=application/x-tar
tcap=application/vnd.3gpp2.tcap
tcl=application/x-tcl
teacher=application/vnd.smart.teacher
tei=application/tei+xml
teicorpus=application/tei+xml
tex=application/x-tex
texi=application/x-texinfo
texinfo=application/x-texinfo
text=text/plain
tfi=application/thraud+xml
tfm=application/x-tex-tfm
tga=image/x-tga
thmx=application/vnd.ms-officetheme
tif=image/tiff
tiff=image/tiff
tmo=application/vnd.tmobile-livetv
torrent=application/x-bittorrent
tpl=application/vnd.groove-tool-template
tpt=application/vnd.trid.tpt
tr=text/troff
tra=application/vnd.trueapp
trm=application/x-msterminal
tsd=application/timestamped-data
tsv=text/tab-separated-values
ttc=font/collection
ttf=font/ttf
ttl=text/turtle
twd=application/vnd.simtech-mindmapper
twds=application/vnd.simtech-mindmapper
txd=application/vnd.genomatix.tuxedo
txf=application/vnd.mobius.txf
txt=text/plain
u32=application/x-authorware-bin
udeb=application/x-debian-package
ufd=application/vnd.ufdl
ufdl=application/vnd.ufdl
ulw=audio/basic
ulx=application/x-glulx
umj=application/vnd.umajin
unityweb=application/vnd.unity
uoml=application/vnd.uoml+xml
uri=text/uri-list
uris=text/uri-list
urls=text/uri-list
ustar=application/x-ustar
utz=application/vnd.uiq.theme
uu=text/x-uuencode
uva=audio/vnd.dece.audio
uvd=application/vnd.dece.data
uvf=application/vnd.dece.data
uvg=image/vnd.dece.graphic
uvh=video/vnd.dece.hd
uvi=image/vnd.dece.graphic
uvm=video/vnd.dece.mobile
uvp=video/vnd.dece.pd
uvs=video/vnd.dece.sd
uvt=application/vnd.dece.ttml+xml
uvu=video/vnd.uvvu.mp4
uvv=video/vnd.dece.video
uvva=audio/vnd.dece.audio
uvvd=application/vnd.dece.data
uvvf=application/vnd.dece.data
uvvg=image/vnd.dece.graphic
uvvh=video/vnd.dece.hd
uvvi=image/vnd.dece.graphic
uvvm=video/vnd.dece.mobile
uvvp=video/vnd.dece.pd
uvvs=video/vnd.dece.sd
uvvt=application/vnd.dece.ttml+xml
uvvu=video/vnd.uvvu.mp4
uvvv=video/vnd.dece.video
uvvx=application/vnd.dece.unspecified
uvvz=application/vnd.dece.zip
uvx=application/vnd.dece.unspecified
uvz=application/vnd.dece.zip
vcard=text/vcard
vcd=application/x-cdlink
vcf=text/x-vcard
vcg=application/vnd.groove-vcard
vcs=text/x-vcalendar
vcx=application/vnd.vcx
vis=application/vnd.visionary
viv=video/vnd.vivo
vob=video/x-ms-vob
vor=application/vnd.stardivision.writer
vox=application/x-authorware-bin
vrml=model/vrml
vsd=application/vnd.visio
vsf=application/vnd.vsf
vss=application/vnd.visio
vst=application/vnd.visio
vsw=application/vnd.visio
vtu=model/vnd.vtu
vxml=application/voicexml+xml
w3d=application/x-director
wad=application/x-doom
wav=audio/x-wav
wax=audio/x-ms-wax
wbmp=image/vnd.wap.wbmp
wbs=application/vnd.criticaltools.wbs+xml
wbxml=application/vnd.wap.wbxml
wcm=application/vnd.ms-works
wdb=application/vnd.ms-works
wdp=image/vnd.ms-photo
weba=audio/webm
webm=video/webm
webp=image/webp
wg=application/vnd.pmi.widget
wgt=application/widget
wks=application/vnd.ms-works
wm=video/x-ms-wm
wma=audio/x-ms-wma
wmd=application/x-ms-wmd
wmf=application/x-msmetafile
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
wmx=video/x-ms-wmx
wmz=application/x-msmetafile
woff=font/woff
woff2=font/woff2
wpd=application/vnd.wordperfect
wpl=application/vnd.ms-wpl
wps=application/vnd.ms-works
wqd=application/vnd.wqd
wri=application/x-mswrite
wrl=model/vrml
wsdl=application/wsdl+xml
wspolicy=application/wspolicy+xml
wtb=application/vnd.webturbo
wvx=video/x-ms-wvx
x32=application/x-authorware-bin
x3d=model/x3d+xml
x3db=model/x3d+binary
x3dbz=model/x3d+binary
x3dv=model/x3d+vrml
x3dvz=model/x3d+vrml
x3dz=model/x3d+xml
xaml=application/xaml+xml
xap=application/x-silverlight-app
xar=application/vnd.xara
xbap=application/x-ms-xbap
xbd=application/vnd.fujixerox.docuworks.binder
xbm=image/x-xbitmap
xdf=application/xcap-diff+xml
xdm=application/vnd.syncml.dm+xml
xdp=application/vnd.adobe.xdp+xml
xdssc=application/dssc+xml
xdw=application/vnd.fujixerox.docuworks
xenc=application/xenc+xml
xer=application/patch-ops-error+xml
xfdf=application/vnd.adobe.xfdf
xfdl=application/vnd.xfdl
xht=application/xhtml+xml
xhtml=application/xhtml+xml
xhvml=application/xv+xml
xif=image/vnd.xiff
xla=application/vnd.ms-excel
xlam=application/vnd.ms-excel.addin.macroenabled.12
xlc=application/vnd.ms-excel
xlf=application/x-xliff+xml
xlm=application/vnd.ms-excel
xls=application/vnd.ms-excel
xlsb=application/vnd.ms-excel.sheet.binary.macroenabled.12
xlsm=application/vnd.ms-excel.sheet.macroenabled.12
xlsx=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
xlt=application/vnd.ms-excel
xltm=application/vnd.ms-excel.template.macroenabled.12
xltx=application/vnd.openxmlformats-officedocument.spreadsheetml.template
xlw=application/vnd.ms-excel
xm=audio/xm
xml=application/xml
xo=application/vnd.olpc-sugar
xop=application/xop+xml
xpi=application/x-xpinstall
xpl=application/xproc+xml
xpm=image/x-xpixmap
xpr=application/vnd.is-xpr
xps=application/vnd.ms-xpsdocument
xpw=application/vnd.intercon.formnet
xpx=application/vnd.intercon.formnet
xsl=application/xml
xslt=application/xslt+xml
xsm=application/vnd.syncml+xml
xspf=application/xspf+xml
xul=application/vnd.mozilla.xul+xml
xvm=application/xv+xml
xvml=application/xv+xml
xwd=image/x-xwindowdump
xyz=chemical/x-xyz
xz=application/x-xz
yang=application/yang
yin=application/yin+xml
z=application/x-compress
z1=application/x-zmachine
z2=application/x-zmachine
z3=application/x-zmachine
z4=application/x-zmachine
z5=application/x-zmachine
z6=application/x-zmachine
z7=application/x-zmachine
z8=application/x-zmachine
zaz=application/vnd.zzazz.deck+xml
zip=application/zip
zir=application/vnd.zul
zirz=application/vnd.zul
zmm=application/vnd.handheld-entertainment+xml