246 lines
8.9 KiB
Go
246 lines
8.9 KiB
Go
package oss
|
||
|
||
import (
|
||
"mime"
|
||
"path"
|
||
"strings"
|
||
)
|
||
|
||
var extToMimeType = map[string]string{
|
||
".xlsx": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
||
".xltx": "application/vnd.openxmlformats-officedocument.spreadsheetml.template",
|
||
".potx": "application/vnd.openxmlformats-officedocument.presentationml.template",
|
||
".ppsx": "application/vnd.openxmlformats-officedocument.presentationml.slideshow",
|
||
".pptx": "application/vnd.openxmlformats-officedocument.presentationml.presentation",
|
||
".sldx": "application/vnd.openxmlformats-officedocument.presentationml.slide",
|
||
".docx": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
||
".dotx": "application/vnd.openxmlformats-officedocument.wordprocessingml.template",
|
||
".xlam": "application/vnd.ms-excel.addin.macroEnabled.12",
|
||
".xlsb": "application/vnd.ms-excel.sheet.binary.macroEnabled.12",
|
||
".apk": "application/vnd.android.package-archive",
|
||
".hqx": "application/mac-binhex40",
|
||
".cpt": "application/mac-compactpro",
|
||
".doc": "application/msword",
|
||
".ogg": "application/ogg",
|
||
".pdf": "application/pdf",
|
||
".rtf": "text/rtf",
|
||
".mif": "application/vnd.mif",
|
||
".xls": "application/vnd.ms-excel",
|
||
".ppt": "application/vnd.ms-powerpoint",
|
||
".odc": "application/vnd.oasis.opendocument.chart",
|
||
".odb": "application/vnd.oasis.opendocument.database",
|
||
".odf": "application/vnd.oasis.opendocument.formula",
|
||
".odg": "application/vnd.oasis.opendocument.graphics",
|
||
".otg": "application/vnd.oasis.opendocument.graphics-template",
|
||
".odi": "application/vnd.oasis.opendocument.image",
|
||
".odp": "application/vnd.oasis.opendocument.presentation",
|
||
".otp": "application/vnd.oasis.opendocument.presentation-template",
|
||
".ods": "application/vnd.oasis.opendocument.spreadsheet",
|
||
".ots": "application/vnd.oasis.opendocument.spreadsheet-template",
|
||
".odt": "application/vnd.oasis.opendocument.text",
|
||
".odm": "application/vnd.oasis.opendocument.text-master",
|
||
".ott": "application/vnd.oasis.opendocument.text-template",
|
||
".oth": "application/vnd.oasis.opendocument.text-web",
|
||
".sxw": "application/vnd.sun.xml.writer",
|
||
".stw": "application/vnd.sun.xml.writer.template",
|
||
".sxc": "application/vnd.sun.xml.calc",
|
||
".stc": "application/vnd.sun.xml.calc.template",
|
||
".sxd": "application/vnd.sun.xml.draw",
|
||
".std": "application/vnd.sun.xml.draw.template",
|
||
".sxi": "application/vnd.sun.xml.impress",
|
||
".sti": "application/vnd.sun.xml.impress.template",
|
||
".sxg": "application/vnd.sun.xml.writer.global",
|
||
".sxm": "application/vnd.sun.xml.math",
|
||
".sis": "application/vnd.symbian.install",
|
||
".wbxml": "application/vnd.wap.wbxml",
|
||
".wmlc": "application/vnd.wap.wmlc",
|
||
".wmlsc": "application/vnd.wap.wmlscriptc",
|
||
".bcpio": "application/x-bcpio",
|
||
".torrent": "application/x-bittorrent",
|
||
".bz2": "application/x-bzip2",
|
||
".vcd": "application/x-cdlink",
|
||
".pgn": "application/x-chess-pgn",
|
||
".cpio": "application/x-cpio",
|
||
".csh": "application/x-csh",
|
||
".dvi": "application/x-dvi",
|
||
".spl": "application/x-futuresplash",
|
||
".gtar": "application/x-gtar",
|
||
".hdf": "application/x-hdf",
|
||
".jar": "application/x-java-archive",
|
||
".jnlp": "application/x-java-jnlp-file",
|
||
".js": "application/x-javascript",
|
||
".ksp": "application/x-kspread",
|
||
".chrt": "application/x-kchart",
|
||
".kil": "application/x-killustrator",
|
||
".latex": "application/x-latex",
|
||
".rpm": "application/x-rpm",
|
||
".sh": "application/x-sh",
|
||
".shar": "application/x-shar",
|
||
".swf": "application/x-shockwave-flash",
|
||
".sit": "application/x-stuffit",
|
||
".sv4cpio": "application/x-sv4cpio",
|
||
".sv4crc": "application/x-sv4crc",
|
||
".tar": "application/x-tar",
|
||
".tcl": "application/x-tcl",
|
||
".tex": "application/x-tex",
|
||
".man": "application/x-troff-man",
|
||
".me": "application/x-troff-me",
|
||
".ms": "application/x-troff-ms",
|
||
".ustar": "application/x-ustar",
|
||
".src": "application/x-wais-source",
|
||
".zip": "application/zip",
|
||
".m3u": "audio/x-mpegurl",
|
||
".ra": "audio/x-pn-realaudio",
|
||
".wav": "audio/x-wav",
|
||
".wma": "audio/x-ms-wma",
|
||
".wax": "audio/x-ms-wax",
|
||
".pdb": "chemical/x-pdb",
|
||
".xyz": "chemical/x-xyz",
|
||
".bmp": "image/bmp",
|
||
".gif": "image/gif",
|
||
".ief": "image/ief",
|
||
".png": "image/png",
|
||
".wbmp": "image/vnd.wap.wbmp",
|
||
".ras": "image/x-cmu-raster",
|
||
".pnm": "image/x-portable-anymap",
|
||
".pbm": "image/x-portable-bitmap",
|
||
".pgm": "image/x-portable-graymap",
|
||
".ppm": "image/x-portable-pixmap",
|
||
".rgb": "image/x-rgb",
|
||
".xbm": "image/x-xbitmap",
|
||
".xpm": "image/x-xpixmap",
|
||
".xwd": "image/x-xwindowdump",
|
||
".css": "text/css",
|
||
".rtx": "text/richtext",
|
||
".tsv": "text/tab-separated-values",
|
||
".jad": "text/vnd.sun.j2me.app-descriptor",
|
||
".wml": "text/vnd.wap.wml",
|
||
".wmls": "text/vnd.wap.wmlscript",
|
||
".etx": "text/x-setext",
|
||
".mxu": "video/vnd.mpegurl",
|
||
".flv": "video/x-flv",
|
||
".wm": "video/x-ms-wm",
|
||
".wmv": "video/x-ms-wmv",
|
||
".wmx": "video/x-ms-wmx",
|
||
".wvx": "video/x-ms-wvx",
|
||
".avi": "video/x-msvideo",
|
||
".movie": "video/x-sgi-movie",
|
||
".ice": "x-conference/x-cooltalk",
|
||
".3gp": "video/3gpp",
|
||
".ai": "application/postscript",
|
||
".aif": "audio/x-aiff",
|
||
".aifc": "audio/x-aiff",
|
||
".aiff": "audio/x-aiff",
|
||
".asc": "text/plain",
|
||
".atom": "application/atom+xml",
|
||
".au": "audio/basic",
|
||
".bin": "application/octet-stream",
|
||
".cdf": "application/x-netcdf",
|
||
".cgm": "image/cgm",
|
||
".class": "application/octet-stream",
|
||
".dcr": "application/x-director",
|
||
".dif": "video/x-dv",
|
||
".dir": "application/x-director",
|
||
".djv": "image/vnd.djvu",
|
||
".djvu": "image/vnd.djvu",
|
||
".dll": "application/octet-stream",
|
||
".dmg": "application/octet-stream",
|
||
".dms": "application/octet-stream",
|
||
".dtd": "application/xml-dtd",
|
||
".dv": "video/x-dv",
|
||
".dxr": "application/x-director",
|
||
".eps": "application/postscript",
|
||
".exe": "application/octet-stream",
|
||
".ez": "application/andrew-inset",
|
||
".gram": "application/srgs",
|
||
".grxml": "application/srgs+xml",
|
||
".gz": "application/x-gzip",
|
||
".htm": "text/html",
|
||
".html": "text/html",
|
||
".ico": "image/x-icon",
|
||
".ics": "text/calendar",
|
||
".ifb": "text/calendar",
|
||
".iges": "model/iges",
|
||
".igs": "model/iges",
|
||
".jp2": "image/jp2",
|
||
".jpe": "image/jpeg",
|
||
".jpeg": "image/jpeg",
|
||
".jpg": "image/jpeg",
|
||
".kar": "audio/midi",
|
||
".lha": "application/octet-stream",
|
||
".lzh": "application/octet-stream",
|
||
".m4a": "audio/mp4a-latm",
|
||
".m4p": "audio/mp4a-latm",
|
||
".m4u": "video/vnd.mpegurl",
|
||
".m4v": "video/x-m4v",
|
||
".mac": "image/x-macpaint",
|
||
".mathml": "application/mathml+xml",
|
||
".mesh": "model/mesh",
|
||
".mid": "audio/midi",
|
||
".midi": "audio/midi",
|
||
".mov": "video/quicktime",
|
||
".mp2": "audio/mpeg",
|
||
".mp3": "audio/mpeg",
|
||
".mp4": "video/mp4",
|
||
".mpe": "video/mpeg",
|
||
".mpeg": "video/mpeg",
|
||
".mpg": "video/mpeg",
|
||
".mpga": "audio/mpeg",
|
||
".msh": "model/mesh",
|
||
".nc": "application/x-netcdf",
|
||
".oda": "application/oda",
|
||
".ogv": "video/ogv",
|
||
".pct": "image/pict",
|
||
".pic": "image/pict",
|
||
".pict": "image/pict",
|
||
".pnt": "image/x-macpaint",
|
||
".pntg": "image/x-macpaint",
|
||
".ps": "application/postscript",
|
||
".qt": "video/quicktime",
|
||
".qti": "image/x-quicktime",
|
||
".qtif": "image/x-quicktime",
|
||
".ram": "audio/x-pn-realaudio",
|
||
".rdf": "application/rdf+xml",
|
||
".rm": "application/vnd.rn-realmedia",
|
||
".roff": "application/x-troff",
|
||
".sgm": "text/sgml",
|
||
".sgml": "text/sgml",
|
||
".silo": "model/mesh",
|
||
".skd": "application/x-koan",
|
||
".skm": "application/x-koan",
|
||
".skp": "application/x-koan",
|
||
".skt": "application/x-koan",
|
||
".smi": "application/smil",
|
||
".smil": "application/smil",
|
||
".snd": "audio/basic",
|
||
".so": "application/octet-stream",
|
||
".svg": "image/svg+xml",
|
||
".t": "application/x-troff",
|
||
".texi": "application/x-texinfo",
|
||
".texinfo": "application/x-texinfo",
|
||
".tif": "image/tiff",
|
||
".tiff": "image/tiff",
|
||
".tr": "application/x-troff",
|
||
".txt": "text/plain",
|
||
".vrml": "model/vrml",
|
||
".vxml": "application/voicexml+xml",
|
||
".webm": "video/webm",
|
||
".wrl": "model/vrml",
|
||
".xht": "application/xhtml+xml",
|
||
".xhtml": "application/xhtml+xml",
|
||
".xml": "application/xml",
|
||
".xsl": "application/xml",
|
||
".xslt": "application/xslt+xml",
|
||
".xul": "application/vnd.mozilla.xul+xml",
|
||
}
|
||
|
||
// TypeByExtension returns the MIME type associated with the file extension ext.
|
||
// 获取文件类型,选项ContentType使用
|
||
func TypeByExtension(filePath string) string {
|
||
typ := mime.TypeByExtension(path.Ext(filePath))
|
||
if typ == "" {
|
||
typ = extToMimeType[strings.ToLower(path.Ext(filePath))]
|
||
}
|
||
return typ
|
||
}
|