652 lines
32 KiB
Go
652 lines
32 KiB
Go
package rest
|
||
|
||
import (
|
||
"path/filepath"
|
||
"strings"
|
||
)
|
||
|
||
var allMimeMap = map[string]string{
|
||
".323": "text/h323",
|
||
".3g2": "video/3gpp2",
|
||
".3gp": "video/3gpp",
|
||
".3gp2": "video/3gpp2",
|
||
".3gpp": "video/3gpp",
|
||
".7z": "application/x-7z-compressed",
|
||
".aa": "audio/audible",
|
||
".AAC": "audio/aac",
|
||
".aaf": "application/octet-stream",
|
||
".aax": "audio/vnd.audible.aax",
|
||
".ac3": "audio/ac3",
|
||
".aca": "application/octet-stream",
|
||
".accda": "application/msaccess.addin",
|
||
".accdb": "application/msaccess",
|
||
".accdc": "application/msaccess.cab",
|
||
".accde": "application/msaccess",
|
||
".accdr": "application/msaccess.runtime",
|
||
".accdt": "application/msaccess",
|
||
".accdw": "application/msaccess.webapplication",
|
||
".accft": "application/msaccess.ftemplate",
|
||
".acx": "application/internet-property-stream",
|
||
".AddIn": "text/xml",
|
||
".ade": "application/msaccess",
|
||
".adobebridge": "application/x-bridge-url",
|
||
".adp": "application/msaccess",
|
||
".ADT": "audio/vnd.dlna.adts",
|
||
".ADTS": "audio/aac",
|
||
".afm": "application/octet-stream",
|
||
".ai": "application/postscript",
|
||
".aif": "audio/aiff",
|
||
".aifc": "audio/aiff",
|
||
".aiff": "audio/aiff",
|
||
".air": "application/vnd.adobe.air-application-installer-package+zip",
|
||
".amc": "application/mpeg",
|
||
".anx": "application/annodex",
|
||
".apk": "application/vnd.android.package-archive",
|
||
".application": "application/x-ms-application",
|
||
".art": "image/x-jg",
|
||
".asa": "application/xml",
|
||
".asax": "application/xml",
|
||
".ascx": "application/xml",
|
||
".asd": "application/octet-stream",
|
||
".asf": "video/x-ms-asf",
|
||
".ashx": "application/xml",
|
||
".asi": "application/octet-stream",
|
||
".asm": "text/plain",
|
||
".asmx": "application/xml",
|
||
".aspx": "application/xml",
|
||
".asr": "video/x-ms-asf",
|
||
".asx": "video/x-ms-asf",
|
||
".atom": "application/atom+xml",
|
||
".au": "audio/basic",
|
||
".avi": "video/x-msvideo",
|
||
".axa": "audio/annodex",
|
||
".axs": "application/olescript",
|
||
".axv": "video/annodex",
|
||
".bas": "text/plain",
|
||
".bat": "text/plain",
|
||
".bcpio": "application/x-bcpio",
|
||
".bin": "application/octet-stream",
|
||
".bmp": "image/bmp",
|
||
".c": "text/plain",
|
||
".cab": "application/octet-stream",
|
||
".caf": "audio/x-caf",
|
||
".calx": "application/vnd.ms-office.calx",
|
||
".cat": "application/vnd.ms-pki.seccat",
|
||
".cc": "text/plain",
|
||
".cd": "text/plain",
|
||
".cdda": "audio/aiff",
|
||
".cdf": "application/x-cdf",
|
||
".cer": "application/x-x509-ca-cert",
|
||
".cfg": "text/plain",
|
||
".chm": "application/octet-stream",
|
||
".class": "application/x-java-applet",
|
||
".clp": "application/x-msclip",
|
||
".cmd": "text/plain",
|
||
".cmx": "image/x-cmx",
|
||
".cnf": "text/plain",
|
||
".cod": "image/cis-cod",
|
||
".config": "application/xml",
|
||
".contact": "text/x-ms-contact",
|
||
".coverage": "application/xml",
|
||
".cpio": "application/x-cpio",
|
||
".cpp": "text/plain",
|
||
".crd": "application/x-mscardfile",
|
||
".crl": "application/pkix-crl",
|
||
".crt": "application/x-x509-ca-cert",
|
||
".cs": "text/plain",
|
||
".csdproj": "text/plain",
|
||
".csh": "application/x-csh",
|
||
".csproj": "text/plain",
|
||
".css": "text/css",
|
||
".csv": "text/csv",
|
||
".cur": "application/octet-stream",
|
||
".cxx": "text/plain",
|
||
".dat": "application/octet-stream",
|
||
".datasource": "application/xml",
|
||
".dbproj": "text/plain",
|
||
".dcr": "application/x-director",
|
||
".def": "text/plain",
|
||
".deploy": "application/octet-stream",
|
||
".der": "application/x-x509-ca-cert",
|
||
".dgml": "application/xml",
|
||
".dib": "image/bmp",
|
||
".dif": "video/x-dv",
|
||
".dir": "application/x-director",
|
||
".disco": "text/xml",
|
||
".divx": "video/divx",
|
||
".dll": "application/x-msdownload",
|
||
".dll.config": "text/xml",
|
||
".dlm": "text/dlm",
|
||
".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",
|
||
".dsp": "application/octet-stream",
|
||
".dsw": "text/plain",
|
||
".dtd": "text/xml",
|
||
".dtsConfig": "text/xml",
|
||
".dv": "video/x-dv",
|
||
".dvi": "application/x-dvi",
|
||
".dwf": "drawing/x-dwf",
|
||
".dwg": "application/acad",
|
||
".dwp": "application/octet-stream",
|
||
".dxf": "application/x-dxf",
|
||
".dxr": "application/x-director",
|
||
".eml": "message/rfc822",
|
||
".emz": "application/octet-stream",
|
||
".eot": "application/vnd.ms-fontobject",
|
||
".eps": "application/postscript",
|
||
".etl": "application/etl",
|
||
".etx": "text/x-setext",
|
||
".evy": "application/envoy",
|
||
".exe": "application/octet-stream",
|
||
".exe.config": "text/xml",
|
||
".fdf": "application/vnd.fdf",
|
||
".fif": "application/fractals",
|
||
".filters": "application/xml",
|
||
".fla": "application/octet-stream",
|
||
".flac": "audio/flac",
|
||
".flr": "x-world/x-vrml",
|
||
".flv": "video/x-flv",
|
||
".fsscript": "application/fsharp-script",
|
||
".fsx": "application/fsharp-script",
|
||
".generictest": "application/xml",
|
||
".gif": "image/gif",
|
||
".go": "text/plain",
|
||
".gpx": "application/gpx+xml",
|
||
".group": "text/x-ms-group",
|
||
".gsm": "audio/x-gsm",
|
||
".gradle": "text/plain",
|
||
".gtar": "application/x-gtar",
|
||
".gz": "application/x-gzip",
|
||
".h": "text/plain",
|
||
".hdf": "application/x-hdf",
|
||
".hdml": "text/x-hdml",
|
||
".hhc": "application/x-oleobject",
|
||
".hhk": "application/octet-stream",
|
||
".hhp": "application/octet-stream",
|
||
".hlp": "application/winhlp",
|
||
".hpp": "text/plain",
|
||
".hqx": "application/mac-binhex40",
|
||
".hta": "application/hta",
|
||
".htc": "text/x-component",
|
||
".htm": "text/html",
|
||
".html": "text/html",
|
||
".htt": "text/webviewhtml",
|
||
".hxa": "application/xml",
|
||
".hxc": "application/xml",
|
||
".hxd": "application/octet-stream",
|
||
".hxe": "application/xml",
|
||
".hxf": "application/xml",
|
||
".hxh": "application/octet-stream",
|
||
".hxi": "application/octet-stream",
|
||
".hxk": "application/xml",
|
||
".hxq": "application/octet-stream",
|
||
".hxr": "application/octet-stream",
|
||
".hxs": "application/octet-stream",
|
||
".hxt": "text/html",
|
||
".hxv": "application/xml",
|
||
".hxw": "application/octet-stream",
|
||
".hxx": "text/plain",
|
||
".i": "text/plain",
|
||
".ico": "image/x-icon",
|
||
".ics": "application/octet-stream",
|
||
".idl": "text/plain",
|
||
".ief": "image/ief",
|
||
".iii": "application/x-iphone",
|
||
".inc": "text/plain",
|
||
".inf": "application/octet-stream",
|
||
".ini": "text/plain",
|
||
".inl": "text/plain",
|
||
".ins": "application/x-internet-signup",
|
||
".ipa": "application/x-itunes-ipa",
|
||
".ipg": "application/x-itunes-ipg",
|
||
".ipproj": "text/plain",
|
||
".ipsw": "application/x-itunes-ipsw",
|
||
".iqy": "text/x-ms-iqy",
|
||
".isp": "application/x-internet-signup",
|
||
".ite": "application/x-itunes-ite",
|
||
".itlp": "application/x-itunes-itlp",
|
||
".itms": "application/x-itunes-itms",
|
||
".itpc": "application/x-itunes-itpc",
|
||
".IVF": "video/x-ivf",
|
||
".jar": "application/java-archive",
|
||
".java": "text/plain",
|
||
".jck": "application/liquidmotion",
|
||
".jcz": "application/liquidmotion",
|
||
".jfif": "image/pjpeg",
|
||
".jnlp": "application/x-java-jnlp-file",
|
||
".jpb": "application/octet-stream",
|
||
".jpe": "image/jpeg",
|
||
".jpeg": "image/jpeg",
|
||
".jpg": "image/jpeg",
|
||
".js": "application/javascript",
|
||
".json": "application/json",
|
||
".jsx": "text/jscript",
|
||
".jsxbin": "text/plain",
|
||
".latex": "application/x-latex",
|
||
".library-ms": "application/windows-library+xml",
|
||
".lit": "application/x-ms-reader",
|
||
".loadtest": "application/xml",
|
||
".lpk": "application/octet-stream",
|
||
".lsf": "video/x-la-asf",
|
||
".lst": "text/plain",
|
||
".lsx": "video/x-la-asf",
|
||
".lzh": "application/octet-stream",
|
||
".m13": "application/x-msmediaview",
|
||
".m14": "application/x-msmediaview",
|
||
".m1v": "video/mpeg",
|
||
".m2t": "video/vnd.dlna.mpeg-tts",
|
||
".m2ts": "video/vnd.dlna.mpeg-tts",
|
||
".m2v": "video/mpeg",
|
||
".m3u": "audio/x-mpegurl",
|
||
".m3u8": "audio/x-mpegurl",
|
||
".m4a": "audio/m4a",
|
||
".m4b": "audio/m4b",
|
||
".m4p": "audio/m4p",
|
||
".m4r": "audio/x-m4r",
|
||
".m4v": "video/x-m4v",
|
||
".mac": "image/x-macpaint",
|
||
".mak": "text/plain",
|
||
".man": "application/x-troff-man",
|
||
".manifest": "application/x-ms-manifest",
|
||
".map": "text/plain",
|
||
".master": "application/xml",
|
||
".mbox": "application/mbox",
|
||
".mda": "application/msaccess",
|
||
".mdb": "application/x-msaccess",
|
||
".mde": "application/msaccess",
|
||
".mdp": "application/octet-stream",
|
||
".me": "application/x-troff-me",
|
||
".mfp": "application/x-shockwave-flash",
|
||
".mht": "message/rfc822",
|
||
".mhtml": "message/rfc822",
|
||
".mid": "audio/mid",
|
||
".midi": "audio/mid",
|
||
".mix": "application/octet-stream",
|
||
".mk": "text/plain",
|
||
".mmf": "application/x-smaf",
|
||
".mno": "text/xml",
|
||
".mny": "application/x-msmoney",
|
||
".mod": "video/mpeg",
|
||
".mov": "video/quicktime",
|
||
".movie": "video/x-sgi-movie",
|
||
".mp2": "video/mpeg",
|
||
".mp2v": "video/mpeg",
|
||
".mp3": "audio/mpeg",
|
||
".mp4": "video/mp4",
|
||
".mp4v": "video/mp4",
|
||
".mpa": "video/mpeg",
|
||
".mpe": "video/mpeg",
|
||
".mpeg": "video/mpeg",
|
||
".mpf": "application/vnd.ms-mediapackage",
|
||
".mpg": "video/mpeg",
|
||
".mpp": "application/vnd.ms-project",
|
||
".mpv2": "video/mpeg",
|
||
".mqv": "video/quicktime",
|
||
".ms": "application/x-troff-ms",
|
||
".msg": "application/vnd.ms-outlook",
|
||
".msi": "application/octet-stream",
|
||
".mso": "application/octet-stream",
|
||
".mts": "video/vnd.dlna.mpeg-tts",
|
||
".mtx": "application/xml",
|
||
".mvb": "application/x-msmediaview",
|
||
".mvc": "application/x-miva-compiled",
|
||
".mxp": "application/x-mmxp",
|
||
".nc": "application/x-netcdf",
|
||
".nsc": "video/x-ms-asf",
|
||
".nws": "message/rfc822",
|
||
".ocx": "application/octet-stream",
|
||
".oda": "application/oda",
|
||
".odb": "application/vnd.oasis.opendocument.database",
|
||
".odc": "application/vnd.oasis.opendocument.chart",
|
||
".odf": "application/vnd.oasis.opendocument.formula",
|
||
".odg": "application/vnd.oasis.opendocument.graphics",
|
||
".odh": "text/plain",
|
||
".odi": "application/vnd.oasis.opendocument.image",
|
||
".odl": "text/plain",
|
||
".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",
|
||
".one": "application/onenote",
|
||
".onea": "application/onenote",
|
||
".onepkg": "application/onenote",
|
||
".onetmp": "application/onenote",
|
||
".onetoc": "application/onenote",
|
||
".onetoc2": "application/onenote",
|
||
".opus": "audio/ogg",
|
||
".orderedtest": "application/xml",
|
||
".osdx": "application/opensearchdescription+xml",
|
||
".otf": "application/font-sfnt",
|
||
".otg": "application/vnd.oasis.opendocument.graphics-template",
|
||
".oth": "application/vnd.oasis.opendocument.text-web",
|
||
".otp": "application/vnd.oasis.opendocument.presentation-template",
|
||
".ots": "application/vnd.oasis.opendocument.spreadsheet-template",
|
||
".ott": "application/vnd.oasis.opendocument.text-template",
|
||
".oxt": "application/vnd.openofficeorg.extension",
|
||
".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",
|
||
".pbm": "image/x-portable-bitmap",
|
||
".pcast": "application/x-podcast",
|
||
".pct": "image/pict",
|
||
".pcx": "application/octet-stream",
|
||
".pcz": "application/octet-stream",
|
||
".pdf": "application/pdf",
|
||
".pfb": "application/octet-stream",
|
||
".pfm": "application/octet-stream",
|
||
".pfx": "application/x-pkcs12",
|
||
".pgm": "image/x-portable-graymap",
|
||
".pic": "image/pict",
|
||
".pict": "image/pict",
|
||
".pkgdef": "text/plain",
|
||
".pkgundef": "text/plain",
|
||
".pko": "application/vnd.ms-pki.pko",
|
||
".pls": "audio/scpls",
|
||
".pma": "application/x-perfmon",
|
||
".pmc": "application/x-perfmon",
|
||
".pml": "application/x-perfmon",
|
||
".pmr": "application/x-perfmon",
|
||
".pmw": "application/x-perfmon",
|
||
".png": "image/png",
|
||
".pnm": "image/x-portable-anymap",
|
||
".pnt": "image/x-macpaint",
|
||
".pntg": "image/x-macpaint",
|
||
".pnz": "image/png",
|
||
".pot": "application/vnd.ms-powerpoint",
|
||
".potm": "application/vnd.ms-powerpoint.template.macroEnabled.12",
|
||
".potx": "application/vnd.openxmlformats-officedocument.presentationml.template",
|
||
".ppa": "application/vnd.ms-powerpoint",
|
||
".ppam": "application/vnd.ms-powerpoint.addin.macroEnabled.12",
|
||
".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",
|
||
".prf": "application/pics-rules",
|
||
".prm": "application/octet-stream",
|
||
".prx": "application/octet-stream",
|
||
".ps": "application/postscript",
|
||
".py": "text/plain",
|
||
".psc1": "application/PowerShell",
|
||
".psd": "application/octet-stream",
|
||
".psess": "application/xml",
|
||
".psm": "application/octet-stream",
|
||
".psp": "application/octet-stream",
|
||
".pst": "application/vnd.ms-outlook",
|
||
".pub": "application/x-mspublisher",
|
||
".pwz": "application/vnd.ms-powerpoint",
|
||
".qht": "text/x-html-insertion",
|
||
".qhtm": "text/x-html-insertion",
|
||
".qt": "video/quicktime",
|
||
".qti": "image/x-quicktime",
|
||
".qtif": "image/x-quicktime",
|
||
".qtl": "application/x-quicktimeplayer",
|
||
".qxd": "application/octet-stream",
|
||
".ra": "audio/x-pn-realaudio",
|
||
".ram": "audio/x-pn-realaudio",
|
||
".rar": "application/x-rar-compressed",
|
||
".ras": "image/x-cmu-raster",
|
||
".rat": "application/rat-file",
|
||
".rc": "text/plain",
|
||
".rc2": "text/plain",
|
||
".rct": "text/plain",
|
||
".rdlc": "application/xml",
|
||
".reg": "text/plain",
|
||
".resx": "application/xml",
|
||
".rf": "image/vnd.rn-realflash",
|
||
".rgb": "image/x-rgb",
|
||
".rgs": "text/plain",
|
||
".rm": "application/vnd.rn-realmedia",
|
||
".rmi": "audio/mid",
|
||
".rmp": "application/vnd.rn-rn_music_package",
|
||
".roff": "application/x-troff",
|
||
".rpm": "audio/x-pn-realaudio-plugin",
|
||
".rqy": "text/x-ms-rqy",
|
||
".rtf": "application/rtf",
|
||
".rtx": "text/richtext",
|
||
".rvt": "application/octet-stream",
|
||
".ruleset": "application/xml",
|
||
".s": "text/plain",
|
||
".safariextz": "application/x-safari-safariextz",
|
||
".scd": "application/x-msschedule",
|
||
".scr": "text/plain",
|
||
".sct": "text/scriptlet",
|
||
".sd2": "audio/x-sd2",
|
||
".sdp": "application/sdp",
|
||
".sea": "application/octet-stream",
|
||
".searchConnector-ms": "application/windows-search-connector+xml",
|
||
".setpay": "application/set-payment-initiation",
|
||
".setreg": "application/set-registration-initiation",
|
||
".settings": "application/xml",
|
||
".sgimb": "application/x-sgimb",
|
||
".sgml": "text/sgml",
|
||
".sh": "text/plain",
|
||
".shar": "application/x-shar",
|
||
".shtml": "text/html",
|
||
".sit": "application/x-stuffit",
|
||
".sitemap": "application/xml",
|
||
".skin": "application/xml",
|
||
".skp": "application/x-koan",
|
||
".sldm": "application/vnd.ms-powerpoint.slide.macroEnabled.12",
|
||
".sldx": "application/vnd.openxmlformats-officedocument.presentationml.slide",
|
||
".slk": "application/vnd.ms-excel",
|
||
".sln": "text/plain",
|
||
".slupkg-ms": "application/x-ms-license",
|
||
".smd": "audio/x-smd",
|
||
".smi": "application/octet-stream",
|
||
".smx": "audio/x-smd",
|
||
".smz": "audio/x-smd",
|
||
".snd": "audio/basic",
|
||
".snippet": "application/xml",
|
||
".snp": "application/octet-stream",
|
||
".sol": "text/plain",
|
||
".sor": "text/plain",
|
||
".spc": "application/x-pkcs7-certificates",
|
||
".spl": "application/futuresplash",
|
||
".spx": "audio/ogg",
|
||
".sql": "text/plain",
|
||
".src": "application/x-wais-source",
|
||
".srf": "text/plain",
|
||
".SSISDeploymentManifest": "text/xml",
|
||
".ssm": "application/streamingmedia",
|
||
".sst": "application/vnd.ms-pki.certstore",
|
||
".stl": "application/vnd.ms-pki.stl",
|
||
".sv4cpio": "application/x-sv4cpio",
|
||
".sv4crc": "application/x-sv4crc",
|
||
".svc": "application/xml",
|
||
".svg": "image/svg+xml",
|
||
".swf": "application/x-shockwave-flash",
|
||
".step": "application/step",
|
||
".stp": "application/step",
|
||
".t": "application/x-troff",
|
||
".tar": "application/x-tar",
|
||
".tcl": "application/x-tcl",
|
||
".testrunconfig": "application/xml",
|
||
".testsettings": "application/xml",
|
||
".tex": "application/x-tex",
|
||
".texi": "application/x-texinfo",
|
||
".texinfo": "application/x-texinfo",
|
||
".tgz": "application/x-compressed",
|
||
".thmx": "application/vnd.ms-officetheme",
|
||
".thn": "application/octet-stream",
|
||
".tif": "image/tiff",
|
||
".tiff": "image/tiff",
|
||
".tlh": "text/plain",
|
||
".tli": "text/plain",
|
||
".toc": "application/octet-stream",
|
||
".tr": "application/x-troff",
|
||
".trm": "application/x-msterminal",
|
||
".trx": "application/xml",
|
||
".ts": "video/vnd.dlna.mpeg-tts",
|
||
".tsv": "text/tab-separated-values",
|
||
".ttf": "application/font-sfnt",
|
||
".tts": "video/vnd.dlna.mpeg-tts",
|
||
".txt": "text/plain",
|
||
".u32": "application/octet-stream",
|
||
".uls": "text/iuls",
|
||
".user": "text/plain",
|
||
".ustar": "application/x-ustar",
|
||
".vb": "text/plain",
|
||
".vbdproj": "text/plain",
|
||
".vbk": "video/mpeg",
|
||
".vbproj": "text/plain",
|
||
".vbs": "text/vbscript",
|
||
".vcf": "text/x-vcard",
|
||
".vcproj": "application/xml",
|
||
".vcs": "text/plain",
|
||
".vcxproj": "application/xml",
|
||
".vddproj": "text/plain",
|
||
".vdp": "text/plain",
|
||
".vdproj": "text/plain",
|
||
".vdx": "application/vnd.ms-visio.viewer",
|
||
".vml": "text/xml",
|
||
".vscontent": "application/xml",
|
||
".vsct": "text/xml",
|
||
".vsd": "application/vnd.visio",
|
||
".vsi": "application/ms-vsi",
|
||
".vsix": "application/vsix",
|
||
".vsixlangpack": "text/xml",
|
||
".vsixmanifest": "text/xml",
|
||
".vsmdi": "application/xml",
|
||
".vspscc": "text/plain",
|
||
".vss": "application/vnd.visio",
|
||
".vsscc": "text/plain",
|
||
".vssettings": "text/xml",
|
||
".vssscc": "text/plain",
|
||
".vst": "application/vnd.visio",
|
||
".vstemplate": "text/xml",
|
||
".vsto": "application/x-ms-vsto",
|
||
".vsw": "application/vnd.visio",
|
||
".vsx": "application/vnd.visio",
|
||
".vtx": "application/vnd.visio",
|
||
".wav": "audio/wav",
|
||
".wave": "audio/wav",
|
||
".wax": "audio/x-ms-wax",
|
||
".wbk": "application/msword",
|
||
".wbmp": "image/vnd.wap.wbmp",
|
||
".wcm": "application/vnd.ms-works",
|
||
".wdb": "application/vnd.ms-works",
|
||
".wdp": "image/vnd.ms-photo",
|
||
".webarchive": "application/x-safari-webarchive",
|
||
".webm": "video/webm",
|
||
".webp": "image/webp", /* https"://en.wikipedia.org/wiki/WebP */
|
||
".webtest": "application/xml",
|
||
".wiq": "application/xml",
|
||
".wiz": "application/msword",
|
||
".wks": "application/vnd.ms-works",
|
||
".WLMP": "application/wlmoviemaker",
|
||
".wlpginstall": "application/x-wlpg-detect",
|
||
".wlpginstall3": "application/x-wlpg3-detect",
|
||
".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",
|
||
".wmp": "video/x-ms-wmp",
|
||
".wmv": "video/x-ms-wmv",
|
||
".wmx": "video/x-ms-wmx",
|
||
".wmz": "application/x-ms-wmz",
|
||
".woff": "application/font-woff",
|
||
".wpl": "application/vnd.ms-wpl",
|
||
".wps": "application/vnd.ms-works",
|
||
".wri": "application/x-mswrite",
|
||
".wrl": "x-world/x-vrml",
|
||
".wrz": "x-world/x-vrml",
|
||
".wsc": "text/scriptlet",
|
||
".wsdl": "text/xml",
|
||
".wvx": "video/x-ms-wvx",
|
||
".x": "application/directx",
|
||
".xaf": "x-world/x-vrml",
|
||
".xaml": "application/xaml+xml",
|
||
".xap": "application/x-silverlight-app",
|
||
".xbap": "application/x-ms-xbap",
|
||
".xbm": "image/x-xbitmap",
|
||
".xdr": "text/plain",
|
||
".xht": "application/xhtml+xml",
|
||
".xhtml": "application/xhtml+xml",
|
||
".xla": "application/vnd.ms-excel",
|
||
".xlam": "application/vnd.ms-excel.addin.macroEnabled.12",
|
||
".xlc": "application/vnd.ms-excel",
|
||
".xld": "application/vnd.ms-excel",
|
||
".xlk": "application/vnd.ms-excel",
|
||
".xll": "application/vnd.ms-excel",
|
||
".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",
|
||
".xml": "text/xml",
|
||
".xmp": "application/octet-stream",
|
||
".xmta": "application/xml",
|
||
".xof": "x-world/x-vrml",
|
||
".XOML": "text/plain",
|
||
".xpm": "image/x-xpixmap",
|
||
".xps": "application/vnd.ms-xpsdocument",
|
||
".xrm-ms": "text/xml",
|
||
".xsc": "application/xml",
|
||
".xsd": "text/xml",
|
||
".xsf": "text/xml",
|
||
".xsl": "text/xml",
|
||
".xslt": "text/xml",
|
||
".xsn": "application/octet-stream",
|
||
".xss": "application/xml",
|
||
".xspf": "application/xspf+xml",
|
||
".xtp": "application/octet-stream",
|
||
".xwd": "image/x-xwindowdump",
|
||
".z": "application/x-compress",
|
||
".zip": "application/zip"}
|
||
|
||
//根据文件名字获取后缀名,均是小写。
|
||
func GetExtension(filename string) string {
|
||
|
||
var extension = filepath.Ext(filename)
|
||
|
||
return strings.ToLower(extension)
|
||
|
||
}
|
||
|
||
//根据一个后缀名获取MimeType,获取不到默认返回 "application/octet-stream"
|
||
func GetMimeType(filename string) string {
|
||
|
||
extension := GetExtension(filename)
|
||
|
||
if mimeType, ok := allMimeMap[extension]; ok {
|
||
return mimeType
|
||
} else {
|
||
return "application/octet-stream"
|
||
}
|
||
}
|
||
|
||
//根据一个后缀名获取MimeType,获取不到默认返回fallback.
|
||
func GetFallbackMimeType(filename string, fallback string) string {
|
||
|
||
extension := GetExtension(filename)
|
||
|
||
if mimeType, ok := allMimeMap[extension]; ok {
|
||
return mimeType
|
||
} else {
|
||
return fallback
|
||
}
|
||
}
|