文档流下载

Excel、PPT、Word等文档流下载

以下是一个简单的下载示例,具体配置根据使用的请求工具有所差异

const downloadExcel = async () => {
  const typeMap = {
    "application/vnd.ms-excel": "xls",
    "application/msword": "doc",
    "application/vnd.ms-powerpoint": "ppt",
    // ...
  };
  // 获取Excel文件,设置响应类型为arraybuffer(二进制)或者blob
  const res = await getExcel({
    url: "文件路径",
    method: "get",
    responseType: "arraybuffer", // blob
  });
  // 设置文件属性
  const fileType = [
    `${res.headers["content-type"]};charset=utf-8`,
    // ...
  ];
  // 获取文件名,也可以自己设置,但必须加上正确的后缀
  //如果从响应头获取要是返回的乱码则需要后端配合进行解码处理
  const contentDisposition = res.headers["content-disposition"];
  const matches = contentDisposition.match(/filename=([^;]+)/);
  const filename = matches && matches.length > 1 ? matches[1] : "";

  const blob = new Blob([res], { type: fileType }); // 创建blob对象
  const downloadElement = document.createElement("a"); // 创建a标签
  const href = window.URL.createObjectURL(blob);
  downloadElement.style.display = "none";
  downloadElement.href = href;
  downloadElement.download = filename; // 设置下载文件名
  document.body.appendChild(downloadElement); // 将a标签追加到body中
  downloadElement.click(); // 点击下载
  document.body.removeChild(downloadElement); // 下载完成移除元素
  window.URL.revokeObjectURL(href); // 释放掉blob对象
};

附上一些常见的类型

3gp ----- video/3gpp  
aab ----- application/x-authoware-bin  
aam ----- application/x-authoware-map  
aas ----- application/x-authoware-seg  
ai ----- application/postscript  
aif ----- audio/x-aiff  
aifc ----- audio/x-aiff  
aiff ----- audio/x-aiff  
als ----- audio/X-Alpha5  
amc ----- application/x-mpeg  
ani ----- application/octet-stream  
asc ----- text/plain  
asd ----- application/astound  
asf ----- video/x-ms-asf  
asn ----- application/astound  
asp ----- application/x-asap  
asx ----- video/x-ms-asf  
au ----- audio/basic  
avb ----- application/octet-stream  
avi ----- video/x-msvideo  
awb ----- audio/amr-wb  
bcpio ----- application/x-bcpio  
bin ----- application/octet-stream  
bld ----- application/bld  
bld2 ----- application/bld2  
bmp ----- application/x-MS-bmp  
bpk ----- application/octet-stream  
bz2 ----- application/x-bzip2  
cal ----- image/x-cals  
ccn ----- application/x-cnc  
cco ----- application/x-cocoa  
cdf ----- application/x-netcdf  
cgi ----- magnus-internal/cgi  
chat ----- application/x-chat  
class ----- application/octet-stream  
clp ----- application/x-msclip  
cmx ----- application/x-cmx  
co ----- application/x-cult3d-object  
cod ----- image/cis-cod  
cpio ----- application/x-cpio  
cpt ----- application/mac-compactpro  
crd ----- application/x-mscardfile  
csh ----- application/x-csh  
csm ----- chemical/x-csml  
csml ----- chemical/x-csml  
css ----- text/css  
cur ----- application/octet-stream  
dcm ----- x-lml/x-evm  
dcr ----- application/x-director  
dcx ----- image/x-dcx  
dhtml ----- text/html  
dir ----- application/x-director  
dll ----- application/octet-stream  
dmg ----- application/octet-stream  
dms ----- application/octet-stream  
doc ----- application/msword  
dot ----- application/x-dot  
dvi ----- application/x-dvi  
dwf ----- drawing/x-dwf  
dwg ----- application/x-autocad  
dxf ----- application/x-autocad  
dxr ----- application/x-director  
ebk ----- application/x-expandedbook  
emb ----- chemical/x-embl-dl-nucleotide  
embl ----- chemical/x-embl-dl-nucleotide  
eps ----- application/postscript  
eri ----- image/x-eri  
es ----- audio/echospeech  
esl ----- audio/echospeech  
etc ----- application/x-earthtime  
etx ----- text/x-setext  
evm ----- x-lml/x-evm  
evy ----- application/x-envoy  
exe ----- application/octet-stream  
fh4 ----- image/x-freehand  
fh5 ----- image/x-freehand  
fhc ----- image/x-freehand  
fif ----- image/fif  
fm ----- application/x-maker  
fpx ----- image/x-fpx  
fvi ----- video/isivideo  
gau ----- chemical/x-gaussian-input  
gca ----- application/x-gca-compressed  
gdb ----- x-lml/x-gdb  
gif ----- image/gif  
gps ----- application/x-gps  
gtar ----- application/x-gtar  
gz ----- application/x-gzip  
hdf ----- application/x-hdf  
hdm ----- text/x-hdml  
hdml ----- text/x-hdml  
hlp ----- application/winhlp  
hqx ----- application/mac-binhex40  
htm ----- text/html  
html ----- text/html  
hts ----- text/html  
ice ----- x-conference/x-cooltalk  
ico ----- application/octet-stream  
ief ----- image/ief  
ifm ----- image/gif  
ifs ----- image/ifs  
imy ----- audio/melody  
ins ----- application/x-NET-Install  
ips ----- application/x-ipscript  
ipx ----- application/x-ipix  
it ----- audio/x-mod  
itz ----- audio/x-mod  
ivr ----- i-world/i-vrml  
j2k ----- image/j2k  
jad ----- text/vnd.sun.j2me.app-descriptor  
jam ----- application/x-jam  
jar ----- application/java-archive  
jnlp ----- application/x-java-jnlp-file  
jpe ----- image/jpeg  
jpeg ----- image/jpeg  
jpg ----- image/jpeg  
jpz ----- image/jpeg  
js ----- application/x-javascript  
jwc ----- application/jwc  
kjx ----- application/x-kjx  
lak ----- x-lml/x-lak  
latex ----- application/x-latex  
lcc ----- application/fastman  
lcl ----- application/x-digitalloca  
lcr ----- application/x-digitalloca  
lgh ----- application/lgh  
lha ----- application/octet-stream  
lml ----- x-lml/x-lml  
lmlpack ----- x-lml/x-lmlpack  
lsf ----- video/x-ms-asf  
lsx ----- video/x-ms-asf  
lzh ----- application/x-lzh  
m13 ----- application/x-msmediaview  
m14 ----- application/x-msmediaview  
m15 ----- audio/x-mod  
m3u ----- audio/x-mpegurl  
m3url ----- audio/x-mpegurl  
ma1 ----- audio/ma1  
ma2 ----- audio/ma2  
ma3 ----- audio/ma3  
ma5 ----- audio/ma5  
man ----- application/x-troff-man  
map ----- magnus-internal/imagemap  
mbd ----- application/mbedlet  
mct ----- application/x-mascot  
mdb ----- application/x-msaccess  
mdz ----- audio/x-mod  
me ----- application/x-troff-me  
mel ----- text/x-vmel  
mi ----- application/x-mif  
mid ----- audio/midi  
midi ----- audio/midi  
mif ----- application/x-mif  
mil ----- image/x-cals  
mio ----- audio/x-mio  
mmf ----- application/x-skt-lbs  
mng ----- video/x-mng  
mny ----- application/x-msmoney  
moc ----- application/x-mocha  
mocha ----- application/x-mocha  
mod ----- audio/x-mod  
mof ----- application/x-yumekara  
mol ----- chemical/x-mdl-molfile  
mop ----- chemical/x-mopac-input  
mov ----- video/quicktime  
movie ----- video/x-sgi-movie  
mp2 ----- audio/x-mpeg  
mp3 ----- audio/x-mpeg  
mp4 ----- video/mp4  
mpc ----- application/vnd.mpohun.certificate  
mpe ----- video/mpeg  
mpeg ----- video/mpeg  
mpg ----- video/mpeg  
mpg4 ----- video/mp4  
mpga ----- audio/mpeg  
mpn ----- application/vnd.mophun.application  
mpp ----- application/vnd.ms-project  
mps ----- application/x-mapserver  
mrl ----- text/x-mrml  
mrm ----- application/x-mrm  
ms ----- application/x-troff-ms  
mts ----- application/metastream  
mtx ----- application/metastream  
mtz ----- application/metastream  
mzv ----- application/metastream  
nar ----- application/zip  
nbmp ----- image/nbmp  
nc ----- application/x-netcdf  
ndb ----- x-lml/x-ndb  
ndwn ----- application/ndwn  
nif ----- application/x-nif  
nmz ----- application/x-scream  
nokia-op-logo ----- image/vnd.nok-oplogo-color  
npx ----- application/x-netfpx  
nsnd ----- audio/nsnd  
nva ----- application/x-neva1  
oda ----- application/oda  
oom ----- application/x-AtlasMate-Plugin  
pac ----- audio/x-pac  
pae ----- audio/x-epac  
pan ----- application/x-pan  
pbm ----- image/x-portable-bitmap  
pcx ----- image/x-pcx  
pda ----- image/x-pda  
pdb ----- chemical/x-pdb  
pdf ----- application/pdf  
pfr ----- application/font-tdpfr  
pgm ----- image/x-portable-graymap  
pict ----- image/x-pict  
pm ----- application/x-perl  
pmd ----- application/x-pmd  
png ----- image/png  
pnm ----- image/x-portable-anymap  
pnz ----- image/png  
pot ----- application/vnd.ms-powerpoint  
ppm ----- image/x-portable-pixmap  
pps ----- application/vnd.ms-powerpoint  
ppt ----- application/vnd.ms-powerpoint  
pqf ----- application/x-cprplayer  
pqi ----- application/cprplayer  
prc ----- application/x-prc  
proxy ----- application/x-ns-proxy-autoconfig  
ps ----- application/postscript  
ptlk ----- application/listenup  
pub ----- application/x-mspublisher  
pvx ----- video/x-pv-pvx  
qcp ----- audio/vnd.qcelp  
qt ----- video/quicktime  
qti ----- image/x-quicktime  
qtif ----- image/x-quicktime  
r3t ----- text/vnd.rn-realtext3d  
ra ----- audio/x-pn-realaudio  
ram ----- audio/x-pn-realaudio  
rar ----- application/x-rar-compressed  
ras ----- image/x-cmu-raster  
rdf ----- application/rdf+xml  
rf ----- image/vnd.rn-realflash  
rgb ----- image/x-rgb  
rlf ----- application/x-richlink  
rm ----- audio/x-pn-realaudio  
rmf ----- audio/x-rmf  
rmm ----- audio/x-pn-realaudio  
rmvb ----- audio/x-pn-realaudio  
rnx ----- application/vnd.rn-realplayer  
roff ----- application/x-troff  
rp ----- image/vnd.rn-realpix  
rpm ----- audio/x-pn-realaudio-plugin  
rt ----- text/vnd.rn-realtext  
rte ----- x-lml/x-gps  
rtf ----- application/rtf  
rtg ----- application/metastream  
rtx ----- text/richtext  
rv ----- video/vnd.rn-realvideo  
rwc ----- application/x-rogerwilco  
s3m ----- audio/x-mod  
s3z ----- audio/x-mod  
sca ----- application/x-supercard  
scd ----- application/x-msschedule  
sdf ----- application/e-score  
sea ----- application/x-stuffit  
sgm ----- text/x-sgml  
sgml ----- text/x-sgml  
sh ----- application/x-sh  
shar ----- application/x-shar  
shtml ----- magnus-internal/parsed-html  
shw ----- application/presentations  
si6 ----- image/si6  
si7 ----- image/vnd.stiwap.sis  
si9 ----- image/vnd.lgtwap.sis  
sis ----- application/vnd.symbian.install  
sit ----- application/x-stuffit  
skd ----- application/x-Koan  
skm ----- application/x-Koan  
skp ----- application/x-Koan  
skt ----- application/x-Koan  
slc ----- application/x-salsa  
smd ----- audio/x-smd  
smi ----- application/smil  
smil ----- application/smil  
smp ----- application/studiom  
smz ----- audio/x-smd  
snd ----- audio/basic  
spc ----- text/x-speech  
spl ----- application/futuresplash  
spr ----- application/x-sprite  
sprite ----- application/x-sprite  
spt ----- application/x-spt  
src ----- application/x-wais-source  
stk ----- application/hyperstudio  
stm ----- audio/x-mod  
sv4cpio ----- application/x-sv4cpio  
sv4crc ----- application/x-sv4crc  
svf ----- image/vnd  
svg ----- image/svg-xml  
svh ----- image/svh  
svr ----- x-world/x-svr  
swf ----- application/x-shockwave-flash  
swfl ----- application/x-shockwave-flash  
t ----- application/x-troff  
tad ----- application/octet-stream  
talk ----- text/x-speech  
tar ----- application/x-tar  
taz ----- application/x-tar  
tbp ----- application/x-timbuktu  
tbt ----- application/x-timbuktu  
tcl ----- application/x-tcl  
tex ----- application/x-tex  
texi ----- application/x-texinfo  
texinfo ----- application/x-texinfo  
tgz ----- application/x-tar  
thm ----- application/vnd.eri.thm  
tif ----- image/tiff  
tiff ----- image/tiff  
tki ----- application/x-tkined  
tkined ----- application/x-tkined  
toc ----- application/toc  
toy ----- image/toy  
tr ----- application/x-troff  
trk ----- x-lml/x-gps  
trm ----- application/x-msterminal  
tsi ----- audio/tsplayer  
tsp ----- application/dsptype  
tsv ----- text/tab-separated-values  
tsv ----- text/tab-separated-values  
ttf ----- application/octet-stream  
ttz ----- application/t-time  
txt ----- text/plain  
ult ----- audio/x-mod  
ustar ----- application/x-ustar  
uu ----- application/x-uuencode  
uue ----- application/x-uuencode  
vcd ----- application/x-cdlink  
vcf ----- text/x-vcard  
vdo ----- video/vdo  
vib ----- audio/vib  
viv ----- video/vivo  
vivo ----- video/vivo  
vmd ----- application/vocaltec-media-desc  
vmf ----- application/vocaltec-media-file  
vmi ----- application/x-dreamcast-vms-info  
vms ----- application/x-dreamcast-vms  
vox ----- audio/voxware  
vqe ----- audio/x-twinvq-plugin  
vqf ----- audio/x-twinvq  
vql ----- audio/x-twinvq  
vre ----- x-world/x-vream  
vrml ----- x-world/x-vrml  
vrt ----- x-world/x-vrt  
vrw ----- x-world/x-vream  
vts ----- workbook/formulaone  
wav ----- audio/x-wav  
wax ----- audio/x-ms-wax  
wbmp ----- image/vnd.wap.wbmp  
web ----- application/vnd.xara  
wi ----- image/wavelet  
wis ----- application/x-InstallShield  
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  
wmlscript ----- text/vnd.wap.wmlscript  
wmv ----- audio/x-ms-wmv  
wmx ----- video/x-ms-wmx  
wmz ----- application/x-ms-wmz  
wpng ----- image/x-up-wpng  
wpt ----- x-lml/x-gps  
wri ----- application/x-mswrite  
wrl ----- x-world/x-vrml  
wrz ----- x-world/x-vrml  
ws ----- text/vnd.wap.wmlscript  
wsc ----- application/vnd.wap.wmlscriptc  
wv ----- video/wavelet  
wvx ----- video/x-ms-wvx  
wxl ----- application/x-wxl  
x-gzip ----- application/x-gzip  
xar ----- application/vnd.xara  
xbm ----- image/x-xbitmap  
xdm ----- application/x-xdma  
xdma ----- application/x-xdma  
xdw ----- application/vnd.fujixerox.docuworks  
xht ----- application/xhtml+xml  
xhtm ----- application/xhtml+xml  
xhtml ----- application/xhtml+xml  
xla ----- application/vnd.ms-excel  
xlc ----- application/vnd.ms-excel  
xll ----- application/x-excel  
xlm ----- application/vnd.ms-excel  
xls ----- application/vnd.ms-excel  
xlt ----- application/vnd.ms-excel  
xlw ----- application/vnd.ms-excel  
xm ----- audio/x-mod  
xml ----- text/xml  
xmz ----- audio/x-mod  
xpi ----- application/x-xpinstall  
xpm ----- image/x-xpixmap
xsit ----- text/xml  
xsl ----- text/xml  
xul ----- text/xul  
xwd ----- image/x-xwindowdump  
xyz ----- chemical/x-pdb  
yz1 ----- application/x-yz1  
z ----- application/x-compress  
zac ----- application/x-zaurus-zac  
zip ----- application/zip
文章目录