我个人的使用场景: 原本是想直接通过springboot + minio返回字节流到前端,但是涉及到多文件的时候,字节流就不方便了;也想过通过后端进行压缩包方式返回,但是太懒了,就不想弄。然后直接转换为Base64编码进行返回
返回结果就是,少了base64的前缀信息:
{
"status": true,
"message": "/9j/4AAQSkZJRgABA........AA//Z",
"data": null,
"code": 0
}
然后就开始在网上查找各种文件的base64前缀,但是都不是很全,最终找到了一个比较全的(CSDN:使用base64格式字符串播放音频),但是我没有全部进行试验,毕竟种类太多了,我就把我常用的整合了一下
import lombok.Getter;
import java.util.Arrays;
import java.util.Map;
import java.util.stream.Collectors;
@Getter
public enum Base64PrefixEnum {
DOC(".doc", "data:application/msword;base64,"),
DOCX(".docx", "data:application/vnd.openxmlformats-officedocument.wordprocessingml.document;base64,"),
XLS(".xls", "data:application/vnd.ms-excel;base64,"),
XLSX(".xlsx", "data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,"),
PDF(".pdf", "data:application/pdf;base64,"),
PPT(".ppt", "data:application/vnd.ms-powerpoint;base64,"),
PPTX(".pptx", "data:application/vnd.openxmlformats-officedocument.presentationml.presentation;base64,"),
TXT(".txt", "data:text/plain;base64,"),
PNG(".png", "data:image/png;base64,"),
JPG(".jpg", "data:image/jpeg;base64,"),
JPEG(".jpeg", "data:image/jpeg;base64,"),
GIF(".gif", "data:image/gif;base64,"),
SVG(".svg", "data:image/svg+xml;base64,"),
ICO(".ico", "data:image/x-icon;base64,"),
BMP(".bmp", "data:image/bmp;base64,"),
MP4(".mp4", "data:video/mp4;base64,"),
MOV(".mov", "data:video/quicktime"),
WMV(".wmv", "data:video/x-ms-wmv"),
M2V(".m2v", "data:video/x-matroska"),
AVI(".avi", "data:video/avi"),
MPEG(".mpeg", "data:video/mpeg"),
ASF(".asf", "data:video/x-ms-asf"),
FVI(".fvi", "data:video/isivideo"),
WAV(".wav", "data:audio/wav;base64,"),
RM(".rm", "data:audio/x-pn-realaudio"),
RMVB(".rmvb", "data:audio/x-pn-realaudio");
private final String type;
private final String prefix;
Base64PrefixEnum(String type, String prefix) {
this.type = type;
this.prefix = prefix;
}
public static String getPrefixByType(String fileType) {
Map<String, String> collect = Arrays.stream(values())
.collect(Collectors.toMap(Base64PrefixEnum::getType, Base64PrefixEnum::getPrefix));
return collect.get(fileType);
}
}
—— 需要使用到哪些文件格式的,自己查找,如有错误之处,还望各位及时指出进行调整
文件类
文件后缀 | 对应格式 | 文件后缀 | 对应格式 | 文件后缀 | 对应格式 |
---|
123 | application/vnd.lotus-1-2-3 | dot | application/x-dot | man | application/x-troff-man |
aab | application/x-authoware-bin | dvi | application/x-dvi | mbd | application/mbedlet |
aam | application/x-authoware-map | dwg | application/x-autocad | mct | application/x-mascot |
aas | application/x-authoware-seg | dxf | application/x-autocad | mdb | application/x-msaccess |
ai | application/postscript | dxr | application/x-director | me | application/x-troff-me |
amc | application/x-mpeg | ebk | application/x-expandedbook | mi | application/x-mif |
ani | application/octet-stream | eps | application/postscript | mif | application/x-mif |
asd | application/astound | etc | application/x-earthtime | mmf | application/x-skt-lbs |
asn | application/astound | evy | application/x-envoy | mny | application/x-msmoney |
asp | application/x-asap | exe | application/octet-stream | moc | application/x-mocha |
avb | application/octet-stream | fm | application/x-maker | mocha | application/x-mocha |
bcpio | application/x-bcpio | gca | application/x-gca-compressed | mof | application/x-yumekara |
bin | application/octet-stream | gps | application/x-gps | mpc | application/vnd.mpohun.certificate |
bld | application/bld | gtar | application/x-gtar | mpn | application/vnd.mophun.application |
bld2 | application/bld2 | gz | application/x-gzip | mpp | application/vnd.ms-project |
bmp | application/x-MS-bmp | hdf | application/x-hdf | mps | application/x-mapserver |
bpk | application/octet-stream | hlp | application/winhlp | mrm | application/x-mrm |
bz2 | application/x-bzip2 | hqx | application/mac-binhex40 | ms | application/x-troff-ms |
ccn | application/x-cnc | ico | application/octet-stream | mts | application/metastream |
cco | application/x-cocoa | ins | application/x-NET-Install | mtx | application/metastream |
cdf | application/x-netcdf | ips | application/x-ipscript | mtz | application/metastream |
chat | application/x-chat | ipx | application/x-ipix | mzv | application/metastream |
class | application/octet-stream | jam | application/x-jam | nar | application/zip |
clp | application/x-msclip | jar | application/java-archive | nc | application/x-netcdf |
cmx | application/x-cmx | jnlp | application/x-java-jnlp-file | ndwn | application/ndwn |
co | application/x-cult3d-object | js | application/x-javascript | nif | application/x-nif |
cpio | application/x-cpio | jwc | application/jwc | nmz | application/x-scream |
cpt | application/mac-compactpro | kjx | application/x-kjx | npx | application/x-netfpx |
crd | application/x-mscardfile | latex | application/x-latex | nva | application/x-neva1 |
csh | application/x-csh | lcc | application/fastman | oda | application/oda |
cur | application/octet-stream | lcl | application/x-digitalloca | oom | application/x-AtlasMate-Plugin |
dcr | application/x-director | lcr | application/x-digitalloca | pan | application/x-pan |
dir | application/x-director | lgh | application/lgh | pdf | application/pdf |
dll | application/octet-stream | lha | application/octet-stream | pfr | application/font-tdpfr |
dmg | application/octet-stream | lzh | application/x-lzh | pm | application/x-perl |
dms | application/octet-stream | m13 | application/x-msmediaview | pmd | application/x-pmd |
doc | application/msword | m14 | application/x-msmediaview | pot | application/vnd.ms-powerpoint |
pps | application/vnd.ms-powerpoint | sprite | application/x-sprite | vcd | application/x-cdlink |
ppt | application/vnd.ms-powerpoint | spt | application/x-spt | vmd | application/vocaltec-media-desc |
pqf | application/x-cprplayer | src | application/x-wais-source | vmf | application/vocaltec-media-file |
pqi | application/cprplayer | stk | application/hyperstudio | vmi | application/x-dreamcast-vms-info |
prc | application/x-prc | sv4cpio | application/x-sv4cpio | vms | application/x-dreamcast-vms |
proxy | application/x-ns-proxy-autoconfig | sv4crc | application/x-sv4crc | web | application/vnd.xara |
ps | application/postscript | swf | application/x-shockwave-flash | wis | application/x-InstallShield |
ptlk | application/listenup | swfl | application/x-shockwave-flash | wmd | application/x-ms-wmd |
pub | application/x-mspublisher | t | application/x-troff | wmf | application/x-msmetafile |
rar | application/x-rar-compressed | tad | application/octet-stream | wmlc | application/vnd.wap.wmlc |
rdf | application/rdf+xml | tar | application/x-tar | wmlsc | application/vnd.wap.wmlscriptc |
rlf | application/x-richlink | taz | application/x-tar | wmz | application/x-ms-wmz |
rm | audio/x-pn-realaudio | tbp | application/x-timbuktu | wri | application/x-mswrite |
rwc | application/x-rogerwilco | tbt | application/x-timbuktu | wsc | application/vnd.wap.wmlscriptc |
rnx | application/vnd.rn-realplayer | tcl | application/x-tcl | wxl | application/x-wxl |
roff | application/x-troff | tex | application/x-tex | x-gzip | application/x-gzip |
rtf | application/rtf | texi | application/x-texinfo | xar | application/vnd.xara |
rtg | application/metastream | texinfo | application/x-texinfo | xdm | application/x-xdma |
sca | application/x-supercard | tgz | application/x-tar | xdma | application/x-xdma |
scd | application/x-msschedule | thm | application/vnd.eri.thm | xdw | application/vnd.fujixerox.docuworks |
sdf | application/e-score | tki | application/x-tkined | xht | application/xhtml+xml |
sea | application/x-stuffit | tkined | application/x-tkined | xhtm | application/xhtml+xml |
sh | application/x-sh | toc | application/toc | xhtml | application/xhtml+xml |
shar | application/x-shar | tr | application/x-troff | xla | application/vnd.ms-excel |
shw | application/presentations | trm | application/x-msterminal | xlc | application/vnd.ms-excel |
sis | application/vnd.symbian.install | thm | application/vnd.eri.thm | xll | application/x-excel |
sit | application/x-stuffit | tki | application/x-tkined | xlm | application/vnd.ms-excel |
skd | application/x-Koan | tkined | application/x-tkined | xls | application/vnd.ms-excel |
skm | application/x-Koan | toc | application/toc | xlt | application/vnd.ms-excel |
skp | application/x-Koan | tr | application/x-troff | xlw | application/vnd.ms-excel |
skt | application/x-Koan | trm | application/x-msterminal | xpi | application/x-xpinstall |
slc | application/x-salsa | tsp | application/dsptype | yz1 | application/x-yz1 |
smi | application/smil | ttf | application/octet-stream | z | application/x-compress |
smil | application/smil | ttz | application/t-time | zac | application/x-zaurus-zac |
smp | application/studiom | ustar | application/x-ustar | zip | application/zip |
spl | application/futuresplash | uu | application/x-uuencode | | |
spr | application/x-sprite | uue | application/x-uuencode | | |
音频类
文件后缀 | 对应格式 | 文件后缀 | 对应格式 | 文件后缀 | 对应格式 |
---|
aif | audio/x-aiff | itz | audio/x-mod | mid | audio/midi |
aifc | audio/x-aiff | m15 | audio/x-mod | midi | audio/midi |
aiff | audio/x-aiff | m3u | audio/x-mpegurl | mio | audio/x-mio |
als | audio/X-Alpha5 | m3url | audio/x-mpegurl | mod | audio/x-mod |
au | audio/basic | ma1 | audio/ma1 | mp2 | audio/x-mpeg |
awb | audio/amr-wb | ma2 | audio/ma2 | mp3 | audio/x-mpeg |
es | audio/echospeech | ma3 | audio/ma3 | mpga | audio/mpeg |
esl | audio/echospeech | ma5 | audio/ma5 | nsnd | audio/nsnd |
imy | audio/melody | mdz | audio/x-mod | pac | audio/x-pac |
pae | audio/x-epac | s3z | audio/x-mod | vqe | audio/x-twinvq-plugin |
qcp | audio/vnd.qcelp | smd | audio/x-smd | vqf | audio/x-twinvq |
ra | audio/x-pn-realaudio | smz | audio/x-smd | vql | audio/x-twinvq |
ram | audio/x-pn-realaudio | snd | audio/basic | wav | audio/x-wav |
rmf | audio/x-rmf | stm | audio/x-mod | wax | audio/x-ms-wax |
rmm | audio/x-pn-realaudio | tsi | audio/tsplayer | wma | audio/x-ms-wma |
rmvb | audio/x-pn-realaudio | ult | audio/x-mod | wmv | audio/x-ms-wmv |
rpm | audio/x-pn-realaudio-plugin | vib | audio/vib | xm | audio/x-mod |
s3m | audio/x-mod | vox | audio/voxware | xmz | audio/x-mod |
it | audio/x-mod | | | | |
图片类
文件后缀 | 对应格式 | 文件后缀 | 对应格式 | 文件后缀 | 对应格式 |
---|
cal | image/x-cals | fpx | image/x-fpx | jpg | image/jpeg |
cod | image/cis-cod | gif | image/gif | jpz | image/jpeg |
dcx | image/x-dcx | ief | image/ief | mil | image/x-cals |
eri | image/x-eri | ifm | image/gif | nbmp | image/nbmp |
fh4 | image/x-freehand | ifs | image/ifs | nokia-op-logo | image/vnd.nok-oplogo-color |
fh5 | image/x-freehand | j2k | image/j2k | pbm | image/x-portable-bitmap |
fhc | image/x-freehand | jpe | image/jpeg | pcx | image/x-pcx |
fif | image/fif | jpeg | image/jpeg | pda | image/x-pda |
pgm | image/x-portable-graymap | rf | image/vnd.rn-realflash | tif | image/tiff |
pict | image/x-pict | rgb | image/x-rgb | tiff | image/tiff |
png | image/png | rp | image/vnd.rn-realpix | toy | image/toy |
pnm | image/x-portable-anymap | si6 | image/si6 | wbmp | image/vnd.wap.wbmp |
pnz | image/png | si7 | image/vnd.stiwap.sis | wi | image/wavelet |
ppm | image/x-portable-pixmap | si9 | image/vnd.lgtwap.sis | wpng | image/x-up-wpng |
qti | image/x-quicktime | svf | image/vnd | xbm | image/x-xbitmap |
qtif | image/x-quicktime | svg | image/svg-xml | xpm | image/x-xpixmap |
ras | image/x-cmu-raster | svh | image/svh | xwd | image/x-xwindowdump |
文本类
文件后缀 | 对应格式 | 文件后缀 | 对应格式 | 文件后缀 | 对应格式 |
---|
asc | text/plain | htm | text/html | mrl | text/x-mrml |
css | text/css | html | text/html | r3t | text/vnd.rn-realtext3d |
dhtml | text/html | hts | text/html | rt | text/vnd.rn-realtext |
etx | text/x-setext | jad | text/vnd.sun.j2me.app-descriptor | rtx | text/richtext |
hdm | text/x-hdml | mel | text/x-vmel | sgm | text/x-sgml |
sgml | text/x-sgml | txt | text/plain | ws | text/vnd.wap.wmlscript |
spc | text/x-speech | vcf | text/x-vcard | xml | text/xml |
talk | text/x-speech | wml | text/vnd.wap.wml | xsit | text/xml |
tsv | text/tab-separated-values | wmls | text/vnd.wap.wmlscript | xsl | text/xml |
tsv | text/tab-separated-values | wmlscript | text/vnd.wap.wmlscript | xul | text/xul |
hdml | text/x-hdml | | | | |
视频类
文件后缀 | 对应格式 | 文件后缀 | 对应格式 | 文件后缀 | 对应格式 |
---|
3gp | video/3gpp | fvi | video/isivideo | mov | video/quicktime |
asf | video/x-ms-asf | lsf | video/x-ms-asf | movie | video/x-sgi-movie |
asx | video/x-ms-asf | lsx | video/x-ms-asf | mp4 | video/mp4 |
avi | video/x-msvideo | mng | video/x-mng | mpe | video/mpeg |
mpeg | video/mpeg | qt | video/quicktime | vivo | video/vivo |
mpg | video/mpeg | rv | video/vnd.rn-realvideo | wm | video/x-ms-wm |
mpg4 | video/mp4 | vdo | video/vdo | wmx | video/x-ms-wmx |
pvx | video/x-pv-pvx | viv | video/vivo | wv | video/wavelet |
wvx | video/x-ms-wvx | | | | |
其他
文件后缀 | 对应格式 | 文件后缀 | 对应格式 | 文件后缀 | 对应格式 |
---|
gdb | x-lml/x-gdb | lak | x-lml/x-lak | ndb | x-lml/x-ndb |
dcm | x-lml/x-evm | lml | x-lml/x-lml | rte | x-lml/x-gps |
evm | x-lml/x-evm | lmlpack | x-lml/x-lmlpack | trk | x-lml/x-gps |
wpt | x-lml/x-gps | | | | |
| | | | | |
emb | chemical/x-embl-dl-nucleotide | csml | chemical/x-csml | mop | chemical/x-mopac-input |
embl | chemical/x-embl-dl-nucleotide | gau | chemical/x-gaussian-input | pdb | chemical/x-pdb |
csm | chemical/x-csml | mol | chemical/x-mdl-molfile | xyz | chemical/x-pdb |
| | | | | |
vre | x-world/x-vream | vrt | x-world/x-vrt | svr | x-world/x-svr |
vrml | x-world/x-vrml | vrw | x-world/x-vream | wrl | x-world/x-vrml |
wrz | x-world/x-vrml | | | | |
| | | | | |
cgi | magnus-internal/cgi | map | magnus-internal/imagemap | shtml | magnus-internal/parsed-html |
| | | | | |
vts | workbook/formulaone | | | ivr | i-world/i-vrml |
| | | | | |
ice | x-conference/x-cooltalk | | | dwf | drawing/x-dwf |