Spring-各种文件类型对应的请求方式,可直接替换到Base64中

我个人的使用场景: 原本是想直接通过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;

/**
 * Base64的类型
 *
 * @author Chia-Hung Yeh
 * @since 2022/2/16 10:03
 */
@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;

	// base64对应的前缀信息
    private final String prefix;

    Base64PrefixEnum(String type, String prefix) {
        this.type = type;
        this.prefix = prefix;
    }

    /**
     * 根据文件类型获取base64前缀信息
     *
     * @param fileType 文件类型
     * @return String
     * @author Chia-Hung Yeh
     * @since 2022/2/16 10:04
     */
    public static String getPrefixByType(String fileType) {
        Map<String, String> collect = Arrays.stream(values())
                .collect(Collectors.toMap(Base64PrefixEnum::getType, Base64PrefixEnum::getPrefix));
        return collect.get(fileType);
    }

}

—— 需要使用到哪些文件格式的,自己查找,如有错误之处,还望各位及时指出进行调整

文件类

文件后缀对应格式文件后缀对应格式文件后缀对应格式
123application/vnd.lotus-1-2-3dotapplication/x-dotmanapplication/x-troff-man
aabapplication/x-authoware-bindviapplication/x-dvimbdapplication/mbedlet
aamapplication/x-authoware-mapdwgapplication/x-autocadmctapplication/x-mascot
aasapplication/x-authoware-segdxfapplication/x-autocadmdbapplication/x-msaccess
aiapplication/postscriptdxrapplication/x-directormeapplication/x-troff-me
amcapplication/x-mpegebkapplication/x-expandedbookmiapplication/x-mif
aniapplication/octet-streamepsapplication/postscriptmifapplication/x-mif
asdapplication/astoundetcapplication/x-earthtimemmfapplication/x-skt-lbs
asnapplication/astoundevyapplication/x-envoymnyapplication/x-msmoney
aspapplication/x-asapexeapplication/octet-streammocapplication/x-mocha
avbapplication/octet-streamfmapplication/x-makermochaapplication/x-mocha
bcpioapplication/x-bcpiogcaapplication/x-gca-compressedmofapplication/x-yumekara
binapplication/octet-streamgpsapplication/x-gpsmpcapplication/vnd.mpohun.certificate
bldapplication/bldgtarapplication/x-gtarmpnapplication/vnd.mophun.application
bld2application/bld2gzapplication/x-gzipmppapplication/vnd.ms-project
bmpapplication/x-MS-bmphdfapplication/x-hdfmpsapplication/x-mapserver
bpkapplication/octet-streamhlpapplication/winhlpmrmapplication/x-mrm
bz2application/x-bzip2hqxapplication/mac-binhex40msapplication/x-troff-ms
ccnapplication/x-cncicoapplication/octet-streammtsapplication/metastream
ccoapplication/x-cocoainsapplication/x-NET-Installmtxapplication/metastream
cdfapplication/x-netcdfipsapplication/x-ipscriptmtzapplication/metastream
chatapplication/x-chatipxapplication/x-ipixmzvapplication/metastream
classapplication/octet-streamjamapplication/x-jamnarapplication/zip
clpapplication/x-msclipjarapplication/java-archivencapplication/x-netcdf
cmxapplication/x-cmxjnlpapplication/x-java-jnlp-filendwnapplication/ndwn
coapplication/x-cult3d-objectjsapplication/x-javascriptnifapplication/x-nif
cpioapplication/x-cpiojwcapplication/jwcnmzapplication/x-scream
cptapplication/mac-compactprokjxapplication/x-kjxnpxapplication/x-netfpx
crdapplication/x-mscardfilelatexapplication/x-latexnvaapplication/x-neva1
cshapplication/x-cshlccapplication/fastmanodaapplication/oda
curapplication/octet-streamlclapplication/x-digitallocaoomapplication/x-AtlasMate-Plugin
dcrapplication/x-directorlcrapplication/x-digitallocapanapplication/x-pan
dirapplication/x-directorlghapplication/lghpdfapplication/pdf
dllapplication/octet-streamlhaapplication/octet-streampfrapplication/font-tdpfr
dmgapplication/octet-streamlzhapplication/x-lzhpmapplication/x-perl
dmsapplication/octet-streamm13application/x-msmediaviewpmdapplication/x-pmd
docapplication/mswordm14application/x-msmediaviewpotapplication/vnd.ms-powerpoint
ppsapplication/vnd.ms-powerpointspriteapplication/x-spritevcdapplication/x-cdlink
pptapplication/vnd.ms-powerpointsptapplication/x-sptvmdapplication/vocaltec-media-desc
pqfapplication/x-cprplayersrcapplication/x-wais-sourcevmfapplication/vocaltec-media-file
pqiapplication/cprplayerstkapplication/hyperstudiovmiapplication/x-dreamcast-vms-info
prcapplication/x-prcsv4cpioapplication/x-sv4cpiovmsapplication/x-dreamcast-vms
proxyapplication/x-ns-proxy-autoconfigsv4crcapplication/x-sv4crcwebapplication/vnd.xara
psapplication/postscriptswfapplication/x-shockwave-flashwisapplication/x-InstallShield
ptlkapplication/listenupswflapplication/x-shockwave-flashwmdapplication/x-ms-wmd
pubapplication/x-mspublishertapplication/x-troffwmfapplication/x-msmetafile
rarapplication/x-rar-compressedtadapplication/octet-streamwmlcapplication/vnd.wap.wmlc
rdfapplication/rdf+xmltarapplication/x-tarwmlscapplication/vnd.wap.wmlscriptc
rlfapplication/x-richlinktazapplication/x-tarwmzapplication/x-ms-wmz
rmaudio/x-pn-realaudiotbpapplication/x-timbuktuwriapplication/x-mswrite
rwcapplication/x-rogerwilcotbtapplication/x-timbuktuwscapplication/vnd.wap.wmlscriptc
rnxapplication/vnd.rn-realplayertclapplication/x-tclwxlapplication/x-wxl
roffapplication/x-trofftexapplication/x-texx-gzipapplication/x-gzip
rtfapplication/rtftexiapplication/x-texinfoxarapplication/vnd.xara
rtgapplication/metastreamtexinfoapplication/x-texinfoxdmapplication/x-xdma
scaapplication/x-supercardtgzapplication/x-tarxdmaapplication/x-xdma
scdapplication/x-msschedulethmapplication/vnd.eri.thmxdwapplication/vnd.fujixerox.docuworks
sdfapplication/e-scoretkiapplication/x-tkinedxhtapplication/xhtml+xml
seaapplication/x-stuffittkinedapplication/x-tkinedxhtmapplication/xhtml+xml
shapplication/x-shtocapplication/tocxhtmlapplication/xhtml+xml
sharapplication/x-shartrapplication/x-troffxlaapplication/vnd.ms-excel
shwapplication/presentationstrmapplication/x-msterminalxlcapplication/vnd.ms-excel
sisapplication/vnd.symbian.installthmapplication/vnd.eri.thmxllapplication/x-excel
sitapplication/x-stuffittkiapplication/x-tkinedxlmapplication/vnd.ms-excel
skdapplication/x-Koantkinedapplication/x-tkinedxlsapplication/vnd.ms-excel
skmapplication/x-Koantocapplication/tocxltapplication/vnd.ms-excel
skpapplication/x-Koantrapplication/x-troffxlwapplication/vnd.ms-excel
sktapplication/x-Koantrmapplication/x-msterminalxpiapplication/x-xpinstall
slcapplication/x-salsatspapplication/dsptypeyz1application/x-yz1
smiapplication/smilttfapplication/octet-streamzapplication/x-compress
smilapplication/smilttzapplication/t-timezacapplication/x-zaurus-zac
smpapplication/studiomustarapplication/x-ustarzipapplication/zip
splapplication/futuresplashuuapplication/x-uuencode
sprapplication/x-spriteuueapplication/x-uuencode

音频类

文件后缀对应格式文件后缀对应格式文件后缀对应格式
aifaudio/x-aiffitzaudio/x-modmidaudio/midi
aifcaudio/x-aiffm15audio/x-modmidiaudio/midi
aiffaudio/x-aiffm3uaudio/x-mpegurlmioaudio/x-mio
alsaudio/X-Alpha5m3urlaudio/x-mpegurlmodaudio/x-mod
auaudio/basicma1audio/ma1mp2audio/x-mpeg
awbaudio/amr-wbma2audio/ma2mp3audio/x-mpeg
esaudio/echospeechma3audio/ma3mpgaaudio/mpeg
eslaudio/echospeechma5audio/ma5nsndaudio/nsnd
imyaudio/melodymdzaudio/x-modpacaudio/x-pac
paeaudio/x-epacs3zaudio/x-modvqeaudio/x-twinvq-plugin
qcpaudio/vnd.qcelpsmdaudio/x-smdvqfaudio/x-twinvq
raaudio/x-pn-realaudiosmzaudio/x-smdvqlaudio/x-twinvq
ramaudio/x-pn-realaudiosndaudio/basicwavaudio/x-wav
rmfaudio/x-rmfstmaudio/x-modwaxaudio/x-ms-wax
rmmaudio/x-pn-realaudiotsiaudio/tsplayerwmaaudio/x-ms-wma
rmvbaudio/x-pn-realaudioultaudio/x-modwmvaudio/x-ms-wmv
rpmaudio/x-pn-realaudio-pluginvibaudio/vibxmaudio/x-mod
s3maudio/x-modvoxaudio/voxwarexmzaudio/x-mod
itaudio/x-mod

图片类

文件后缀对应格式文件后缀对应格式文件后缀对应格式
calimage/x-calsfpximage/x-fpxjpgimage/jpeg
codimage/cis-codgifimage/gifjpzimage/jpeg
dcximage/x-dcxiefimage/iefmilimage/x-cals
eriimage/x-eriifmimage/gifnbmpimage/nbmp
fh4image/x-freehandifsimage/ifsnokia-op-logoimage/vnd.nok-oplogo-color
fh5image/x-freehandj2kimage/j2kpbmimage/x-portable-bitmap
fhcimage/x-freehandjpeimage/jpegpcximage/x-pcx
fifimage/fifjpegimage/jpegpdaimage/x-pda
pgmimage/x-portable-graymaprfimage/vnd.rn-realflashtifimage/tiff
pictimage/x-pictrgbimage/x-rgbtiffimage/tiff
pngimage/pngrpimage/vnd.rn-realpixtoyimage/toy
pnmimage/x-portable-anymapsi6image/si6wbmpimage/vnd.wap.wbmp
pnzimage/pngsi7image/vnd.stiwap.siswiimage/wavelet
ppmimage/x-portable-pixmapsi9image/vnd.lgtwap.siswpngimage/x-up-wpng
qtiimage/x-quicktimesvfimage/vndxbmimage/x-xbitmap
qtifimage/x-quicktimesvgimage/svg-xmlxpmimage/x-xpixmap
rasimage/x-cmu-rastersvhimage/svhxwdimage/x-xwindowdump

文本类

文件后缀对应格式文件后缀对应格式文件后缀对应格式
asctext/plainhtmtext/htmlmrltext/x-mrml
csstext/csshtmltext/htmlr3ttext/vnd.rn-realtext3d
dhtmltext/htmlhtstext/htmlrttext/vnd.rn-realtext
etxtext/x-setextjadtext/vnd.sun.j2me.app-descriptorrtxtext/richtext
hdmtext/x-hdmlmeltext/x-vmelsgmtext/x-sgml
sgmltext/x-sgmltxttext/plainwstext/vnd.wap.wmlscript
spctext/x-speechvcftext/x-vcardxmltext/xml
talktext/x-speechwmltext/vnd.wap.wmlxsittext/xml
tsvtext/tab-separated-valueswmlstext/vnd.wap.wmlscriptxsltext/xml
tsvtext/tab-separated-valueswmlscripttext/vnd.wap.wmlscriptxultext/xul
hdmltext/x-hdml

视频类

文件后缀对应格式文件后缀对应格式文件后缀对应格式
3gpvideo/3gppfvivideo/isivideomovvideo/quicktime
asfvideo/x-ms-asflsfvideo/x-ms-asfmovievideo/x-sgi-movie
asxvideo/x-ms-asflsxvideo/x-ms-asfmp4video/mp4
avivideo/x-msvideomngvideo/x-mngmpevideo/mpeg
mpegvideo/mpegqtvideo/quicktimevivovideo/vivo
mpgvideo/mpegrvvideo/vnd.rn-realvideowmvideo/x-ms-wm
mpg4video/mp4vdovideo/vdowmxvideo/x-ms-wmx
pvxvideo/x-pv-pvxvivvideo/vivowvvideo/wavelet
wvxvideo/x-ms-wvx

其他

文件后缀对应格式文件后缀对应格式文件后缀对应格式
gdbx-lml/x-gdblakx-lml/x-lakndbx-lml/x-ndb
dcmx-lml/x-evmlmlx-lml/x-lmlrtex-lml/x-gps
evmx-lml/x-evmlmlpackx-lml/x-lmlpacktrkx-lml/x-gps
wptx-lml/x-gps
embchemical/x-embl-dl-nucleotidecsmlchemical/x-csmlmopchemical/x-mopac-input
emblchemical/x-embl-dl-nucleotidegauchemical/x-gaussian-inputpdbchemical/x-pdb
csmchemical/x-csmlmolchemical/x-mdl-molfilexyzchemical/x-pdb
vrex-world/x-vreamvrtx-world/x-vrtsvrx-world/x-svr
vrmlx-world/x-vrmlvrwx-world/x-vreamwrlx-world/x-vrml
wrzx-world/x-vrml
cgimagnus-internal/cgimapmagnus-internal/imagemapshtmlmagnus-internal/parsed-html
vtsworkbook/formulaoneivri-world/i-vrml
icex-conference/x-cooltalkdwfdrawing/x-dwf
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值