IT评测·应用市场-qidao123.com
标题:
整理spring-web里支持的文件以及对应的Content-Type
[打印本页]
作者:
拉不拉稀肚拉稀
时间:
2023-6-17 18:57
标题:
整理spring-web里支持的文件以及对应的Content-Type
前言
最近在弄文件上传、下载、在线预览时经常需要设置请求标头或者响应标头的Content-Type 属性。所以研究了一下spring支持哪些Content-Type,通过研究MediaTypeFactory.getMediaType的源码,可以得知spring是将支持的Content-Type 维护在/org/springframework/http/mime.types文件中。
private static MultiValueMap<String, MediaType> parseMimeTypes() {
InputStream is = MediaTypeFactory.class.getResourceAsStream("/org/springframework/http/mime.types");
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(is, StandardCharsets.US_ASCII));
Throwable var2 = null;
try {
MultiValueMap<String, MediaType> result = new LinkedMultiValueMap();
label111:
while(true) {
String line;
if ((line = reader.readLine()) != null) {
if (line.isEmpty() || line.charAt(0) == '#') {
continue;
}
String[] tokens = StringUtils.tokenizeToStringArray(line, " \t\n\r\f");
MediaType mediaType = MediaType.parseMediaType(tokens[0]);
int i = 1;
while(true) {
if (i >= tokens.length) {
continue label111;
}
String fileExtension = tokens[i].toLowerCase(Locale.ENGLISH);
result.add(fileExtension, mediaType);
++i;
}
}
LinkedMultiValueMap var5 = result;
return var5;
}
} catch (Throwable var17) {
var2 = var17;
throw var17;
} finally {
if (reader != null) {
if (var2 != null) {
try {
reader.close();
} catch (Throwable var16) {
var2.addSuppressed(var16);
}
} else {
reader.close();
}
}
}
} catch (IOException var19) {
throw new IllegalStateException("Could not load '/org/springframework/http/mime.types'", var19);
}
}
复制代码
通过上面查找文件的路径找到了org.springframework:spring-web包下http目录中的mime.types文件
结果打开后居然发现 有多达1838个Content-Type,不过许多都是被注释掉的。过滤掉被注释的最终能被获取出来的一共是982个,本着好记性不如烂笔头的精神,我把这982个Content-Type已经它对应的文件后缀,整理了一下,形成了下面的表格,也方便以后查阅。
mime.types文件:
spring-web将mime.types文件加载到这个map里
spring-web里支持的文件以及对应的Content-Type
文件类型MIME Typeezapplication/andrew-insetawapplication/applixwareatomapplication/atom+xmlatomcatapplication/atomcat+xmlatomsvcapplication/atomsvc+xmlccxmlapplication/ccxml+xmlcdmiaapplication/cdmi-capabilitycdmicapplication/cdmi-containercdmidapplication/cdmi-domaincdmioapplication/cdmi-objectcdmiqapplication/cdmi-queuecuapplication/cu-seemedavmountapplication/davmount+xmldbkapplication/docbook+xmldsscapplication/dssc+derxdsscapplication/dssc+xmlecmaapplication/ecmascriptemmaapplication/emma+xmlepubapplication/epub+zipexiapplication/exipfrapplication/font-tdpfrwoffapplication/font-woffgmlapplication/gml+xmlgpxapplication/gpx+xmlgxfapplication/gxfstkapplication/hyperstudioinkapplication/inkml+xmlinkmlapplication/inkml+xmlipfixapplication/ipfixjarapplication/java-archiveserapplication/java-serialized-objectclassapplication/java-vmjsapplication/javascriptjsonapplication/jsonjsonmlapplication/jsonml+jsonlostxmlapplication/lost+xmlhqxapplication/mac-binhex40cptapplication/mac-compactpromadsapplication/mads+xmlmrcapplication/marcmrcxapplication/marcxml+xmlmaapplication/mathematicanbapplication/mathematicambapplication/mathematicamathmlapplication/mathml+xmlmboxapplication/mboxmscmlapplication/mediaservercontrol+xmlmetalinkapplication/metalink+xmlmeta4application/metalink4+xmlmetsapplication/mets+xmlmodsapplication/mods+xmlm21application/mp21mp21application/mp21mp4sapplication/mp4docapplication/msworddotapplication/mswordmxfapplication/mxfbinapplication/octet-streamdmsapplication/octet-streamlrfapplication/octet-streammarapplication/octet-streamsoapplication/octet-streamdistapplication/octet-streamdistzapplication/octet-streampkgapplication/octet-streambpkapplication/octet-streamdumpapplication/octet-streamelcapplication/octet-streamdeployapplication/octet-streamodaapplication/odaopfapplication/oebps-package+xmlogxapplication/oggomdocapplication/omdoc+xmlonetocapplication/onenoteonetoc2application/onenoteonetmpapplication/onenoteonepkgapplication/onenoteoxpsapplication/oxpsxerapplication/patch-ops-error+xmlpdfapplication/pdfpgpapplication/pgp-encryptedascapplication/pgp-signaturesigapplication/pgp-signatureprfapplication/pics-rulesp10application/pkcs10p7mapplication/pkcs7-mimep7capplication/pkcs7-mimep7sapplication/pkcs7-signaturep8application/pkcs8acapplication/pkix-attr-certcerapplication/pkix-certcrlapplication/pkix-crlpkipathapplication/pkix-pkipathpkiapplication/pkixcmpplsapplication/pls+xmlaiapplication/postscriptepsapplication/postscriptpsapplication/postscriptcwwapplication/prs.cwwpskcxmlapplication/pskc+xmlrdfapplication/rdf+xmlrifapplication/reginfo+xmlrncapplication/relax-ng-compact-syntaxrlapplication/resource-lists+xmlrldapplication/resource-lists-diff+xmlrsapplication/rls-services+xmlgbrapplication/rpki-ghostbustersmftapplication/rpki-manifestroaapplication/rpki-roarsdapplication/rsd+xmlrssapplication/rss+xmlrtfapplication/rtfsbmlapplication/sbml+xmlscqapplication/scvp-cv-requestscsapplication/scvp-cv-responsespqapplication/scvp-vp-requestsppapplication/scvp-vp-responsesdpapplication/sdpsetpayapplication/set-payment-initiationsetregapplication/set-registration-initiationshfapplication/shf+xmlsmiapplication/smil+xmlsmilapplication/smil+xmlrqapplication/sparql-querysrxapplication/sparql-results+xmlgramapplication/srgsgrxmlapplication/srgs+xmlsruapplication/sru+xmlssdlapplication/ssdl+xmlssmlapplication/ssml+xmlteiapplication/tei+xmlteicorpusapplication/tei+xmltfiapplication/thraud+xmltsdapplication/timestamped-dataplbapplication/vnd.3gpp.pic-bw-largepsbapplication/vnd.3gpp.pic-bw-smallpvbapplication/vnd.3gpp.pic-bw-vartcapapplication/vnd.3gpp2.tcappwnapplication/vnd.3m.post-it-notesasoapplication/vnd.accpac.simply.asoimpapplication/vnd.accpac.simply.impacuapplication/vnd.acucobolatcapplication/vnd.acucorpacutcapplication/vnd.acucorpairapplication/vnd.adobe.air-application-installer-package+zipfcdtapplication/vnd.adobe.formscentral.fcdtfxpapplication/vnd.adobe.fxpfxplapplication/vnd.adobe.fxpxdpapplication/vnd.adobe.xdp+xmlxfdfapplication/vnd.adobe.xfdfaheadapplication/vnd.ahead.spaceazfapplication/vnd.airzip.filesecure.azfazsapplication/vnd.airzip.filesecure.azsazwapplication/vnd.amazon.ebookaccapplication/vnd.americandynamics.accamiapplication/vnd.amiga.amiapkapplication/vnd.android.package-archiveciiapplication/vnd.anser-web-certificate-issue-initiationftiapplication/vnd.anser-web-funds-transfer-initiationatxapplication/vnd.antix.game-componentmpkgapplication/vnd.apple.installer+xmlm3u8application/vnd.apple.mpegurlswiapplication/vnd.aristanetworks.swiiotaapplication/vnd.astraea-software.iotaaepapplication/vnd.audiographmpmapplication/vnd.blueice.multipassbmiapplication/vnd.bmirepapplication/vnd.businessobjectscdxmlapplication/vnd.chemdraw+xmlmmdapplication/vnd.chipnuts.karaoke-mmdcdyapplication/vnd.cinderellaclaapplication/vnd.claymorerp9application/vnd.cloanto.rp9c4gapplication/vnd.clonk.c4groupc4dapplication/vnd.clonk.c4groupc4fapplication/vnd.clonk.c4groupc4papplication/vnd.clonk.c4groupc4uapplication/vnd.clonk.c4groupc11amcapplication/vnd.cluetrust.cartomobile-configc11amzapplication/vnd.cluetrust.cartomobile-config-pkgcspapplication/vnd.commonspacecdbcmsgapplication/vnd.contact.cmsgcmcapplication/vnd.cosmocallerclkxapplication/vnd.crick.clickerclkkapplication/vnd.crick.clicker.keyboardclkpapplication/vnd.crick.clicker.paletteclktapplication/vnd.crick.clicker.templateclkwapplication/vnd.crick.clicker.wordbankwbsapplication/vnd.criticaltools.wbs+xmlpmlapplication/vnd.ctc-posmlppdapplication/vnd.cups-ppdcarapplication/vnd.curl.carpcurlapplication/vnd.curl.pcurldartapplication/vnd.dartrdzapplication/vnd.data-vision.rdzuvfapplication/vnd.dece.datauvvfapplication/vnd.dece.datauvdapplication/vnd.dece.datauvvdapplication/vnd.dece.datauvtapplication/vnd.dece.ttml+xmluvvtapplication/vnd.dece.ttml+xmluvxapplication/vnd.dece.unspecifieduvvxapplication/vnd.dece.unspecifieduvzapplication/vnd.dece.zipuvvzapplication/vnd.dece.zipfe_launchapplication/vnd.denovo.fcselayout-linkdnaapplication/vnd.dnamlpapplication/vnd.dolby.mlpdpgapplication/vnd.dpgraphdfacapplication/vnd.dreamfactorykpxxapplication/vnd.ds-keypointaitapplication/vnd.dvb.aitsvcapplication/vnd.dvb.servicegeoapplication/vnd.dynageomagapplication/vnd.ecowin.chartnmlapplication/vnd.enlivenesfapplication/vnd.epson.esfmsfapplication/vnd.epson.msfqamapplication/vnd.epson.quickanimesltapplication/vnd.epson.saltssfapplication/vnd.epson.ssfes3application/vnd.eszigno3+xmlet3application/vnd.eszigno3+xmlez2application/vnd.ezpix-albumez3application/vnd.ezpix-packagefdfapplication/vnd.fdfmseedapplication/vnd.fdsn.mseedseedapplication/vnd.fdsn.seeddatalessapplication/vnd.fdsn.seedgphapplication/vnd.flographitftcapplication/vnd.fluxtime.clipfmapplication/vnd.framemakerframeapplication/vnd.framemakermakerapplication/vnd.framemakerbookapplication/vnd.framemakerfncapplication/vnd.frogans.fncltfapplication/vnd.frogans.ltffscapplication/vnd.fsc.weblaunchoasapplication/vnd.fujitsu.oasysoa2application/vnd.fujitsu.oasys2oa3application/vnd.fujitsu.oasys3fg5application/vnd.fujitsu.oasysgpbh2application/vnd.fujitsu.oasysprsdddapplication/vnd.fujixerox.dddxdwapplication/vnd.fujixerox.docuworksxbdapplication/vnd.fujixerox.docuworks.binderfzsapplication/vnd.fuzzysheettxdapplication/vnd.genomatix.tuxedoggbapplication/vnd.geogebra.fileggtapplication/vnd.geogebra.toolgexapplication/vnd.geometry-explorergreapplication/vnd.geometry-explorergxtapplication/vnd.geonextg2wapplication/vnd.geoplang3wapplication/vnd.geospacegmxapplication/vnd.gmxkmlapplication/vnd.google-earth.kml+xmlkmzapplication/vnd.google-earth.kmzgqfapplication/vnd.grafeqgqsapplication/vnd.grafeqgacapplication/vnd.groove-accountghfapplication/vnd.groove-helpgimapplication/vnd.groove-identity-messagegrvapplication/vnd.groove-injectorgtmapplication/vnd.groove-tool-messagetplapplication/vnd.groove-tool-templatevcgapplication/vnd.groove-vcardhalapplication/vnd.hal+xmlzmmapplication/vnd.handheld-entertainment+xmlhbciapplication/vnd.hbcilesapplication/vnd.hhe.lesson-playerhpglapplication/vnd.hp-hpglhpidapplication/vnd.hp-hpidhpsapplication/vnd.hp-hpsjltapplication/vnd.hp-jlytpclapplication/vnd.hp-pclpclxlapplication/vnd.hp-pclxlsfd-hdstxapplication/vnd.hydrostatix.sof-datampyapplication/vnd.ibm.minipayafpapplication/vnd.ibm.modcaplistafpapplication/vnd.ibm.modcaplist3820application/vnd.ibm.modcapirmapplication/vnd.ibm.rights-managementscapplication/vnd.ibm.secure-containericcapplication/vnd.iccprofileicmapplication/vnd.iccprofileiglapplication/vnd.igloaderivpapplication/vnd.immervision-ivpivuapplication/vnd.immervision-ivuigmapplication/vnd.insors.igmxpwapplication/vnd.intercon.formnetxpxapplication/vnd.intercon.formneti2gapplication/vnd.intergeoqboapplication/vnd.intu.qboqfxapplication/vnd.intu.qfxrcprofileapplication/vnd.ipunplugged.rcprofileirpapplication/vnd.irepository.package+xmlxprapplication/vnd.is-xprfcsapplication/vnd.isac.fcsjamapplication/vnd.jamrmsapplication/vnd.jcp.javame.midlet-rmsjispapplication/vnd.jispjodaapplication/vnd.joost.joda-archivektzapplication/vnd.kahootzktrapplication/vnd.kahootzkarbonapplication/vnd.kde.karbonchrtapplication/vnd.kde.kchartkfoapplication/vnd.kde.kformulaflwapplication/vnd.kde.kiviokonapplication/vnd.kde.kontourkprapplication/vnd.kde.kpresenterkptapplication/vnd.kde.kpresenterkspapplication/vnd.kde.kspreadkwdapplication/vnd.kde.kwordkwtapplication/vnd.kde.kwordhtkeapplication/vnd.kenameaappkiaapplication/vnd.kidspirationkneapplication/vnd.kinarknpapplication/vnd.kinarskpapplication/vnd.koanskdapplication/vnd.koansktapplication/vnd.koanskmapplication/vnd.koansseapplication/vnd.kodak-descriptorlasxmlapplication/vnd.las.las+xmllbdapplication/vnd.llamagraphics.life-balance.desktoplbeapplication/vnd.llamagraphics.life-balance.exchange+xml123application/vnd.lotus-1-2-3aprapplication/vnd.lotus-approachpreapplication/vnd.lotus-freelancensfapplication/vnd.lotus-notesorgapplication/vnd.lotus-organizerscmapplication/vnd.lotus-screencamlwpapplication/vnd.lotus-wordproportpkgapplication/vnd.macports.portpkgmcdapplication/vnd.mcdmc1application/vnd.medcalcdatacdkeyapplication/vnd.mediastation.cdkeymwfapplication/vnd.mfermfmapplication/vnd.mfmpfloapplication/vnd.micrografx.floigxapplication/vnd.micrografx.igxmifapplication/vnd.mifdafapplication/vnd.mobius.dafdisapplication/vnd.mobius.dismbkapplication/vnd.mobius.mbkmqyapplication/vnd.mobius.mqymslapplication/vnd.mobius.mslplcapplication/vnd.mobius.plctxfapplication/vnd.mobius.txfmpnapplication/vnd.mophun.applicationmpcapplication/vnd.mophun.certificatexulapplication/vnd.mozilla.xul+xmlcilapplication/vnd.ms-artgalrycabapplication/vnd.ms-cab-compressedxlsapplication/vnd.ms-excelxlmapplication/vnd.ms-excelxlaapplication/vnd.ms-excelxlcapplication/vnd.ms-excelxltapplication/vnd.ms-excelxlwapplication/vnd.ms-excelxlamapplication/vnd.ms-excel.addin.macroenabled.12xlsbapplication/vnd.ms-excel.sheet.binary.macroenabled.12xlsmapplication/vnd.ms-excel.sheet.macroenabled.12xltmapplication/vnd.ms-excel.template.macroenabled.12eotapplication/vnd.ms-fontobjectchmapplication/vnd.ms-htmlhelpimsapplication/vnd.ms-imslrmapplication/vnd.ms-lrmthmxapplication/vnd.ms-officethemecatapplication/vnd.ms-pki.seccatstlapplication/vnd.ms-pki.stlpptapplication/vnd.ms-powerpointppsapplication/vnd.ms-powerpointpotapplication/vnd.ms-powerpointppamapplication/vnd.ms-powerpoint.addin.macroenabled.12pptmapplication/vnd.ms-powerpoint.presentation.macroenabled.12sldmapplication/vnd.ms-powerpoint.slide.macroenabled.12ppsmapplication/vnd.ms-powerpoint.slideshow.macroenabled.12potmapplication/vnd.ms-powerpoint.template.macroenabled.12mppapplication/vnd.ms-projectmptapplication/vnd.ms-projectdocmapplication/vnd.ms-word.document.macroenabled.12dotmapplication/vnd.ms-word.template.macroenabled.12wpsapplication/vnd.ms-workswksapplication/vnd.ms-workswcmapplication/vnd.ms-workswdbapplication/vnd.ms-workswplapplication/vnd.ms-wplxpsapplication/vnd.ms-xpsdocumentmseqapplication/vnd.mseqmusapplication/vnd.musicianmstyapplication/vnd.muvee.styletagletapplication/vnd.mynfcnluapplication/vnd.neurolanguage.nluntfapplication/vnd.nitfnitfapplication/vnd.nitfnndapplication/vnd.noblenet-directorynnsapplication/vnd.noblenet-sealernnwapplication/vnd.noblenet-webngdatapplication/vnd.nokia.n-gage.datan-gageapplication/vnd.nokia.n-gage.symbian.installrpstapplication/vnd.nokia.radio-presetrpssapplication/vnd.nokia.radio-presetsedmapplication/vnd.novadigm.edmedxapplication/vnd.novadigm.edxextapplication/vnd.novadigm.extodcapplication/vnd.oasis.opendocument.chartotcapplication/vnd.oasis.opendocument.chart-templateodbapplication/vnd.oasis.opendocument.databaseodfapplication/vnd.oasis.opendocument.formulaodftapplication/vnd.oasis.opendocument.formula-templateodgapplication/vnd.oasis.opendocument.graphicsotgapplication/vnd.oasis.opendocument.graphics-templateodiapplication/vnd.oasis.opendocument.imageotiapplication/vnd.oasis.opendocument.image-templateodpapplication/vnd.oasis.opendocument.presentationotpapplication/vnd.oasis.opendocument.presentation-templateodsapplication/vnd.oasis.opendocument.spreadsheetotsapplication/vnd.oasis.opendocument.spreadsheet-templateodtapplication/vnd.oasis.opendocument.textodmapplication/vnd.oasis.opendocument.text-masterottapplication/vnd.oasis.opendocument.text-templateothapplication/vnd.oasis.opendocument.text-webxoapplication/vnd.olpc-sugardd2application/vnd.oma.dd2+xmloxtapplication/vnd.openofficeorg.extensionpptxapplication/vnd.openxmlformats-officedocument.presentationml.presentationsldxapplication/vnd.openxmlformats-officedocument.presentationml.slideppsxapplication/vnd.openxmlformats-officedocument.presentationml.slideshowpotxapplication/vnd.openxmlformats-officedocument.presentationml.templatexlsxapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheetxltxapplication/vnd.openxmlformats-officedocument.spreadsheetml.templatedocxapplication/vnd.openxmlformats-officedocument.wordprocessingml.documentdotxapplication/vnd.openxmlformats-officedocument.wordprocessingml.templatemgpapplication/vnd.osgeo.mapguide.packagedpapplication/vnd.osgi.dpesaapplication/vnd.osgi.subsystempdbapplication/vnd.palmpqaapplication/vnd.palmoprcapplication/vnd.palmpawapplication/vnd.pawaafilestrapplication/vnd.pg.formatei6application/vnd.pg.osasliefifapplication/vnd.picselwgapplication/vnd.pmi.widgetplfapplication/vnd.pocketlearnpbdapplication/vnd.powerbuilder6boxapplication/vnd.previewsystems.boxmgzapplication/vnd.proteus.magazineqpsapplication/vnd.publishare-delta-treeptidapplication/vnd.pvi.ptid1qxdapplication/vnd.quark.quarkxpressqxtapplication/vnd.quark.quarkxpressqwdapplication/vnd.quark.quarkxpressqwtapplication/vnd.quark.quarkxpressqxlapplication/vnd.quark.quarkxpressqxbapplication/vnd.quark.quarkxpressbedapplication/vnd.realvnc.bedmxlapplication/vnd.recordare.musicxmlmusicxmlapplication/vnd.recordare.musicxml+xmlcryptonoteapplication/vnd.rig.cryptonotecodapplication/vnd.rim.codrmapplication/vnd.rn-realmediarmvbapplication/vnd.rn-realmedia-vbrlink66application/vnd.route66.link66+xmlstapplication/vnd.sailingtracker.trackseeapplication/vnd.seemailsemaapplication/vnd.semasemdapplication/vnd.semdsemfapplication/vnd.semfifmapplication/vnd.shana.informed.formdataitpapplication/vnd.shana.informed.formtemplateiifapplication/vnd.shana.informed.interchangeipkapplication/vnd.shana.informed.packagetwdapplication/vnd.simtech-mindmappertwdsapplication/vnd.simtech-mindmappermmfapplication/vnd.smafteacherapplication/vnd.smart.teachersdkmapplication/vnd.solent.sdkm+xmlsdkdapplication/vnd.solent.sdkm+xmldxpapplication/vnd.spotfire.dxpsfsapplication/vnd.spotfire.sfssdcapplication/vnd.stardivision.calcsdaapplication/vnd.stardivision.drawsddapplication/vnd.stardivision.impresssmfapplication/vnd.stardivision.mathsdwapplication/vnd.stardivision.writervorapplication/vnd.stardivision.writersglapplication/vnd.stardivision.writer-globalsmzipapplication/vnd.stepmania.packagesmapplication/vnd.stepmania.stepchartsxcapplication/vnd.sun.xml.calcstcapplication/vnd.sun.xml.calc.templatesxdapplication/vnd.sun.xml.drawstdapplication/vnd.sun.xml.draw.templatesxiapplication/vnd.sun.xml.impressstiapplication/vnd.sun.xml.impress.templatesxmapplication/vnd.sun.xml.mathsxwapplication/vnd.sun.xml.writersxgapplication/vnd.sun.xml.writer.globalstwapplication/vnd.sun.xml.writer.templatesusapplication/vnd.sus-calendarsuspapplication/vnd.sus-calendarsvdapplication/vnd.svdsisapplication/vnd.symbian.installsisxapplication/vnd.symbian.installxsmapplication/vnd.syncml+xmlbdmapplication/vnd.syncml.dm+wbxmlxdmapplication/vnd.syncml.dm+xmltaoapplication/vnd.tao.intent-module-archivepcapapplication/vnd.tcpdump.pcapcapapplication/vnd.tcpdump.pcapdmpapplication/vnd.tcpdump.pcaptmoapplication/vnd.tmobile-livetvtptapplication/vnd.trid.tptmxsapplication/vnd.triscape.mxstraapplication/vnd.trueappufdapplication/vnd.ufdlufdlapplication/vnd.ufdlutzapplication/vnd.uiq.themeumjapplication/vnd.umajinunitywebapplication/vnd.unityuomlapplication/vnd.uoml+xmlvcxapplication/vnd.vcxvsdapplication/vnd.visiovstapplication/vnd.visiovssapplication/vnd.visiovswapplication/vnd.visiovisapplication/vnd.visionaryvsfapplication/vnd.vsfwbxmlapplication/vnd.wap.wbxmlwmlcapplication/vnd.wap.wmlcwmlscapplication/vnd.wap.wmlscriptcwtbapplication/vnd.webturbonbpapplication/vnd.wolfram.playerwpdapplication/vnd.wordperfectwqdapplication/vnd.wqdstfapplication/vnd.wt.stfxarapplication/vnd.xaraxfdlapplication/vnd.xfdlhvdapplication/vnd.yamaha.hv-dichvsapplication/vnd.yamaha.hv-scripthvpapplication/vnd.yamaha.hv-voiceosfapplication/vnd.yamaha.openscoreformatosfpvgapplication/vnd.yamaha.openscoreformat.osfpvg+xmlsafapplication/vnd.yamaha.smaf-audiospfapplication/vnd.yamaha.smaf-phrasecmpapplication/vnd.yellowriver-custom-menuzirapplication/vnd.zulzirzapplication/vnd.zulzazapplication/vnd.zzazz.deck+xmlvxmlapplication/voicexml+xmlwgtapplication/widgethlpapplication/winhlpwsdlapplication/wsdl+xmlwspolicyapplication/wspolicy+xml7zapplication/x-7z-compressedabwapplication/x-abiwordaceapplication/x-ace-compresseddmgapplication/x-apple-diskimageaabapplication/x-authorware-binx32application/x-authorware-binu32application/x-authorware-binvoxapplication/x-authorware-binaamapplication/x-authorware-mapaasapplication/x-authorware-segbcpioapplication/x-bcpiotorrentapplication/x-bittorrentblbapplication/x-blorbblorbapplication/x-blorbbzapplication/x-bzipbz2application/x-bzip2bozapplication/x-bzip2cbrapplication/x-cbrcbaapplication/x-cbrcbtapplication/x-cbrcbzapplication/x-cbrcb7application/x-cbrvcdapplication/x-cdlinkcfsapplication/x-cfs-compressedchatapplication/x-chatpgnapplication/x-chess-pgnnscapplication/x-conferencecpioapplication/x-cpiocshapplication/x-cshdebapplication/x-debian-packageudebapplication/x-debian-packagedgcapplication/x-dgc-compresseddirapplication/x-directordcrapplication/x-directordxrapplication/x-directorcstapplication/x-directorcctapplication/x-directorcxtapplication/x-directorw3dapplication/x-directorfgdapplication/x-directorswaapplication/x-directorwadapplication/x-doomncxapplication/x-dtbncx+xmldtbapplication/x-dtbook+xmlresapplication/x-dtbresource+xmldviapplication/x-dvievyapplication/x-envoyevaapplication/x-evabdfapplication/x-font-bdfgsfapplication/x-font-ghostscriptpsfapplication/x-font-linux-psfotfapplication/x-font-otfpcfapplication/x-font-pcfsnfapplication/x-font-snfttfapplication/x-font-ttfttcapplication/x-font-ttfpfaapplication/x-font-type1pfbapplication/x-font-type1pfmapplication/x-font-type1afmapplication/x-font-type1arcapplication/x-freearcsplapplication/x-futuresplashgcaapplication/x-gca-compressedulxapplication/x-glulxgnumericapplication/x-gnumericgrampsapplication/x-gramps-xmlgtarapplication/x-gtarhdfapplication/x-hdfinstallapplication/x-install-instructionsisoapplication/x-iso9660-imagejnlpapplication/x-java-jnlp-filelatexapplication/x-latexlzhapplication/x-lzh-compressedlhaapplication/x-lzh-compressedmieapplication/x-mieprcapplication/x-mobipocket-ebookmobiapplication/x-mobipocket-ebookapplicationapplication/x-ms-applicationlnkapplication/x-ms-shortcutwmdapplication/x-ms-wmdwmzapplication/x-ms-wmzxbapapplication/x-ms-xbapmdbapplication/x-msaccessobdapplication/x-msbindercrdapplication/x-mscardfileclpapplication/x-msclipexeapplication/x-msdownloaddllapplication/x-msdownloadcomapplication/x-msdownloadbatapplication/x-msdownloadmsiapplication/x-msdownloadmvbapplication/x-msmediaviewm13application/x-msmediaviewm14application/x-msmediaviewwmfapplication/x-msmetafileemfapplication/x-msmetafileemzapplication/x-msmetafilemnyapplication/x-msmoneypubapplication/x-mspublisherscdapplication/x-msscheduletrmapplication/x-msterminalwriapplication/x-mswritencapplication/x-netcdfcdfapplication/x-netcdfnzbapplication/x-nzbp12application/x-pkcs12pfxapplication/x-pkcs12p7bapplication/x-pkcs7-certificatesspcapplication/x-pkcs7-certificatesp7rapplication/x-pkcs7-certreqresprarapplication/x-rar-compressedrisapplication/x-research-info-systemsshapplication/x-shsharapplication/x-sharswfapplication/x-shockwave-flashxapapplication/x-silverlight-appsqlapplication/x-sqlsitapplication/x-stuffitsitxapplication/x-stuffitxsrtapplication/x-subripsv4cpioapplication/x-sv4cpiosv4crcapplication/x-sv4crct3application/x-t3vm-imagegamapplication/x-tadstarapplication/x-tartclapplication/x-tcltexapplication/x-textfmapplication/x-tex-tfmtexinfoapplication/x-texinfotexiapplication/x-texinfoobjapplication/x-tgifustarapplication/x-ustarsrcapplication/x-wais-sourcederapplication/x-x509-ca-certcrtapplication/x-x509-ca-certfigapplication/x-xfigxlfapplication/x-xliff+xmlxpiapplication/x-xpinstallxzapplication/x-xzz1application/x-zmachinez2application/x-zmachinez3application/x-zmachinez4application/x-zmachinez5application/x-zmachinez6application/x-zmachinez7application/x-zmachinez8application/x-zmachinexamlapplication/xaml+xmlxdfapplication/xcap-diff+xmlxencapplication/xenc+xmlxhtmlapplication/xhtml+xmlxhtapplication/xhtml+xmlxmlapplication/xmlxslapplication/xmldtdapplication/xml-dtdxopapplication/xop+xmlxplapplication/xproc+xmlxsltapplication/xslt+xmlxspfapplication/xspf+xmlmxmlapplication/xv+xmlxhvmlapplication/xv+xmlxvmlapplication/xv+xmlxvmapplication/xv+xmlyangapplication/yangyinapplication/yin+xmlzipapplication/zipadpaudio/adpcmauaudio/basicsndaudio/basicmidaudio/midimidiaudio/midikaraudio/midirmiaudio/midim4aaudio/mp4mp4aaudio/mp4mpgaaudio/mpegmp2audio/mpegmp2aaudio/mpegmp3audio/mpegm2aaudio/mpegm3aaudio/mpegogaaudio/oggoggaudio/oggspxaudio/oggs3maudio/s3msilaudio/silkuvaaudio/vnd.dece.audiouvvaaudio/vnd.dece.audioeolaudio/vnd.digital-windsdraaudio/vnd.dradtsaudio/vnd.dtsdtshdaudio/vnd.dts.hdlvpaudio/vnd.lucent.voicepyaaudio/vnd.ms-playready.media.pyaecelp4800audio/vnd.nuera.ecelp4800ecelp7470audio/vnd.nuera.ecelp7470ecelp9600audio/vnd.nuera.ecelp9600ripaudio/vnd.ripwebaaudio/webmaacaudio/x-aacaifaudio/x-aiffaiffaudio/x-aiffaifcaudio/x-aiffcafaudio/x-cafflacaudio/x-flacmkaaudio/x-matroskam3uaudio/x-mpegurlwaxaudio/x-ms-waxwmaaudio/x-ms-wmaramaudio/x-pn-realaudioraaudio/x-pn-realaudiormpaudio/x-pn-realaudio-pluginwavaudio/x-wavxmaudio/xmcdxchemical/x-cdxcifchemical/x-cifcmdfchemical/x-cmdfcmlchemical/x-cmlcsmlchemical/x-csmlxyzchemical/x-xyzbmpimage/bmpcgmimage/cgmg3image/g3faxgifimage/gifiefimage/iefjpegimage/jpegjpgimage/jpegjpeimage/jpegktximage/ktxpngimage/pngbtifimage/prs.btifsgiimage/sgisvgimage/svg+xmlsvgzimage/svg+xmltiffimage/tifftifimage/tiffpsdimage/vnd.adobe.photoshopuviimage/vnd.dece.graphicuvviimage/vnd.dece.graphicuvgimage/vnd.dece.graphicuvvgimage/vnd.dece.graphicdjvuimage/vnd.djvudjvimage/vnd.djvusubimage/vnd.dvb.subtitledwgimage/vnd.dwgdxfimage/vnd.dxffbsimage/vnd.fastbidsheetfpximage/vnd.fpxfstimage/vnd.fstmmrimage/vnd.fujixerox.edmics-mmrrlcimage/vnd.fujixerox.edmics-rlcmdiimage/vnd.ms-modiwdpimage/vnd.ms-photonpximage/vnd.net-fpxwbmpimage/vnd.wap.wbmpxifimage/vnd.xiffwebpimage/webp3dsimage/x-3dsrasimage/x-cmu-rastercmximage/x-cmxfhimage/x-freehandfhcimage/x-freehandfh4image/x-freehandfh5image/x-freehandfh7image/x-freehandicoimage/x-iconsidimage/x-mrsid-imagepcximage/x-pcxpicimage/x-pictpctimage/x-pictpnmimage/x-portable-anymappbmimage/x-portable-bitmappgmimage/x-portable-graymapppmimage/x-portable-pixmaprgbimage/x-rgbtgaimage/x-tgaxbmimage/x-xbitmapxpmimage/x-xpixmapxwdimage/x-xwindowdumpemlmessage/rfc822mimemessage/rfc822igsmodel/igesigesmodel/igesmshmodel/meshmeshmodel/meshsilomodel/meshdaemodel/vnd.collada+xmldwfmodel/vnd.dwfgdlmodel/vnd.gdlgtwmodel/vnd.gtwmtsmodel/vnd.mtsvtumodel/vnd.vtuwrlmodel/vrmlvrmlmodel/vrmlx3dbmodel/x3d+binaryx3dbzmodel/x3d+binaryx3dvmodel/x3d+vrmlx3dvzmodel/x3d+vrmlx3dmodel/x3d+xmlx3dzmodel/x3d+xmlappcachetext/cache-manifesticstext/calendarifbtext/calendarcsstext/csscsvtext/csvhtmltext/htmlhtmtext/htmln3text/n3txttext/plaintexttext/plainconftext/plaindeftext/plainlisttext/plainlogtext/plainintext/plaindsctext/prs.lines.tagrtxtext/richtextsgmltext/sgmlsgmtext/sgmltsvtext/tab-separated-valuesttext/trofftrtext/troffrofftext/troffmantext/troffmetext/troffmstext/troffttltext/turtleuritext/uri-listuristext/uri-listurlstext/uri-listvcardtext/vcardcurltext/vnd.curldcurltext/vnd.curl.dcurlmcurltext/vnd.curl.mcurlscurltext/vnd.curl.scurlflytext/vnd.flyflxtext/vnd.fmi.flexstorgvtext/vnd.graphviz3dmltext/vnd.in3d.3dmlspottext/vnd.in3d.spotjadtext/vnd.sun.j2me.app-descriptorwmltext/vnd.wap.wmlwmlstext/vnd.wap.wmlscriptstext/x-asmasmtext/x-asmctext/x-ccctext/x-ccxxtext/x-ccpptext/x-chtext/x-chhtext/x-cdictext/x-cftext/x-fortranfortext/x-fortranf77text/x-fortranf90text/x-fortranjavatext/x-java-sourcenfotext/x-nfoopmltext/x-opmlptext/x-pascalpastext/x-pascaletxtext/x-setextsfvtext/x-sfvuutext/x-uuencodevcstext/x-vcalendarvcftext/x-vcard3gpvideo/3gpp3g2video/3gpp2h261video/h261h263video/h263h264video/h264jpgvvideo/jpegjpmvideo/jpmjpgmvideo/jpmmj2video/mj2mjp2video/mj2mp4video/mp4mp4vvideo/mp4mpg4video/mp4mpegvideo/mpegmpgvideo/mpegmpevideo/mpegm1vvideo/mpegm2vvideo/mpegogvvideo/oggqtvideo/quicktimemovvideo/quicktimeuvhvideo/vnd.dece.hduvvhvideo/vnd.dece.hduvmvideo/vnd.dece.mobileuvvmvideo/vnd.dece.mobileuvpvideo/vnd.dece.pduvvpvideo/vnd.dece.pduvsvideo/vnd.dece.sduvvsvideo/vnd.dece.sduvvvideo/vnd.dece.videouvvvvideo/vnd.dece.videodvbvideo/vnd.dvb.filefvtvideo/vnd.fvtmxuvideo/vnd.mpegurlm4uvideo/vnd.mpegurlpyvvideo/vnd.ms-playready.media.pyvuvuvideo/vnd.uvvu.mp4uvvuvideo/vnd.uvvu.mp4vivvideo/vnd.vivowebmvideo/webmf4vvideo/x-f4vflivideo/x-fliflvvideo/x-flvm4vvideo/x-m4vmkvvideo/x-matroskamk3dvideo/x-matroskamksvideo/x-matroskamngvideo/x-mngasfvideo/x-ms-asfasxvideo/x-ms-asfvobvideo/x-ms-vobwmvideo/x-ms-wmwmvvideo/x-ms-wmvwmxvideo/x-ms-wmxwvxvideo/x-ms-wvxavivideo/x-msvideomovievideo/x-sgi-moviesmvvideo/x-smvicex-conference/x-cooltalk
如何获取文件的Content-Type
1、使用spring-web包下MediaTypeFactory
MediaTypeFactory是spring-web包下的工具类,需要在pom引用spring-web包,本例使用的是:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version> 2.2.4.RELEASE</version>
</dependency>
复制代码
从源码中可以看到MediaTypeFactory一共提供了三个对外方法,支持通过传入文件名或者Resource对象来获取Content-Type:
public static Optional<MediaType> getMediaType(@Nullable Resource resource) {
return Optional.ofNullable(resource).map(Resource::getFilename).flatMap(MediaTypeFactory::getMediaType);
}
public static Optional<MediaType> getMediaType(@Nullable String filename) {
return getMediaTypes(filename).stream().findFirst();
}
public static List<MediaType> getMediaTypes(@Nullable String filename) {
Optional var10000 = Optional.ofNullable(StringUtils.getFilenameExtension(filename)).map((s) -> {
return s.toLowerCase(Locale.ENGLISH);
});
MultiValueMap var10001 = fileExtensionToMediaTypes;
var10001.getClass();
return (List)var10000.map(var10001::get).orElse(Collections.emptyList());
}
复制代码
我们用传入文件名的方式测试一下:
public static void main(String[] args) {
MediaType mediaType = MediaTypeFactory.getMediaType("测试.pdf").get();
String mediaTypeString = mediaType.toString();
System.out.println(mediaTypeString);
}
复制代码
输出结果:
application/pdf
复制代码
2、使用Apache Tika
Apache Tika
是一个内容分析工具包,可以检测
上千种文件类型
,并提取它们的
元数据和文本
。tika在设计上十分精巧,单一的接口使它易于使用,在
搜索引擎索引,内容分析,翻译
等诸多方面得到了广泛使用。
使用Apache Tika首先需要在pom引用:
<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-core</artifactId>
<version>1.28.4</version>
</dependency>
复制代码
获取Content-Type 主要是用到其中detect的通过源码我们可以得知(源码太长了就不放了)detect支持通过传入String(文件名)、URL、File、Path、byte[]、InputStream等类型来解析以获取Content-Type
我们用传入byte[]的方式测试一下:
public static void main(String[] args) {
File file = new File("D:\\书籍\\电子书\\其它\\自然哲学的数学原理.pdf");
byte[] fileContent = new byte[(int) file.length()];
try (FileInputStream inputStream = new FileInputStream(file)) {
inputStream.read(fileContent);
} catch (IOException e) {
e.printStackTrace();
}
Tika tika = new Tika();
String mediaTypeString = tika.detect(fileContent);
System.out.println(mediaTypeString);
}
复制代码
输出结果:
application/pdf
复制代码
注意tika.detect返回的是String类型,如果想像第一种方式一样得到MediaType对象,还需要转换一下。
MediaType.parseMediaType(mediaTypeString);
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/)
Powered by Discuz! X3.4