diff --git a/beego.go b/beego.go index eaccea90..23924e44 100644 --- a/beego.go +++ b/beego.go @@ -76,6 +76,9 @@ func Run() { } } + //init mime + initMime() + if SessionOn { GlobalSessions, _ = session.NewManager(SessionProvider, SessionName, diff --git a/mime.go b/mime.go new file mode 100644 index 00000000..29ff9d63 --- /dev/null +++ b/mime.go @@ -0,0 +1,550 @@ +package beego + +import ( + "mime" +) + +var mimemaps map[string]string = map[string]string{ + "3dm": "x-world/x-3dmf", + "3dmf": "x-world/x-3dmf", + "7z": "application/x-7z-compressed", + "a": "application/octet-stream", + "aab": "application/x-authorware-bin", + "aam": "application/x-authorware-map", + "aas": "application/x-authorware-seg", + "abc": "text/vndabc", + "ace": "application/x-ace-compressed", + "acgi": "text/html", + "afl": "video/animaflex", + "ai": "application/postscript", + "aif": "audio/aiff", + "aifc": "audio/aiff", + "aiff": "audio/aiff", + "aim": "application/x-aim", + "aip": "text/x-audiosoft-intra", + "alz": "application/x-alz-compressed", + "ani": "application/x-navi-animation", + "aos": "application/x-nokia-9000-communicator-add-on-software", + "aps": "application/mime", + "arc": "application/x-arc-compressed", + "arj": "application/arj", + "art": "image/x-jg", + "asf": "video/x-ms-asf", + "asm": "text/x-asm", + "asp": "text/asp", + "asx": "application/x-mplayer2", + "au": "audio/basic", + "avi": "video/x-msvideo", + "avs": "video/avs-video", + "bcpio": "application/x-bcpio", + "bin": "application/mac-binary", + "bmp": "image/bmp", + "boo": "application/book", + "book": "application/book", + "boz": "application/x-bzip2", + "bsh": "application/x-bsh", + "bz2": "application/x-bzip2", + "bz": "application/x-bzip", + "c++": "text/plain", + "c": "text/x-c", + "cab": "application/vnd.ms-cab-compressed", + "cat": "application/vndms-pkiseccat", + "cc": "text/x-c", + "ccad": "application/clariscad", + "cco": "application/x-cocoa", + "cdf": "application/cdf", + "cer": "application/pkix-cert", + "cha": "application/x-chat", + "chat": "application/x-chat", + "chrt": "application/vnd.kde.kchart", + "class": "application/java", + "com": "text/plain", + "conf": "text/plain", + "cpio": "application/x-cpio", + "cpp": "text/x-c", + "cpt": "application/mac-compactpro", + "crl": "application/pkcs-crl", + "crt": "application/pkix-cert", + "crx": "application/x-chrome-extension", + "csh": "text/x-scriptcsh", + "css": "text/css", + "csv": "text/csv", + "cxx": "text/plain", + "dar": "application/x-dar", + "dcr": "application/x-director", + "deb": "application/x-debian-package", + "deepv": "application/x-deepv", + "def": "text/plain", + "der": "application/x-x509-ca-cert", + "dif": "video/x-dv", + "dir": "application/x-director", + "divx": "video/divx", + "dl": "video/dl", + "dmg": "application/x-apple-diskimage", + "doc": "application/msword", + "dot": "application/msword", + "dp": "application/commonground", + "drw": "application/drafting", + "dump": "application/octet-stream", + "dv": "video/x-dv", + "dvi": "application/x-dvi", + "dwf": "drawing/x-dwf=(old)", + "dwg": "application/acad", + "dxf": "application/dxf", + "dxr": "application/x-director", + "el": "text/x-scriptelisp", + "elc": "application/x-bytecodeelisp=(compiled=elisp)", + "eml": "message/rfc822", + "env": "application/x-envoy", + "eps": "application/postscript", + "es": "application/x-esrehber", + "etx": "text/x-setext", + "evy": "application/envoy", + "exe": "application/octet-stream", + "f77": "text/x-fortran", + "f90": "text/x-fortran", + "f": "text/x-fortran", + "fdf": "application/vndfdf", + "fif": "application/fractals", + "fli": "video/fli", + "flo": "image/florian", + "flv": "video/x-flv", + "flx": "text/vndfmiflexstor", + "fmf": "video/x-atomic3d-feature", + "for": "text/x-fortran", + "fpx": "image/vndfpx", + "frl": "application/freeloader", + "funk": "audio/make", + "g3": "image/g3fax", + "g": "text/plain", + "gif": "image/gif", + "gl": "video/gl", + "gsd": "audio/x-gsm", + "gsm": "audio/x-gsm", + "gsp": "application/x-gsp", + "gss": "application/x-gss", + "gtar": "application/x-gtar", + "gz": "application/x-compressed", + "gzip": "application/x-gzip", + "h": "text/x-h", + "hdf": "application/x-hdf", + "help": "application/x-helpfile", + "hgl": "application/vndhp-hpgl", + "hh": "text/x-h", + "hlb": "text/x-script", + "hlp": "application/hlp", + "hpg": "application/vndhp-hpgl", + "hpgl": "application/vndhp-hpgl", + "hqx": "application/binhex", + "hta": "application/hta", + "htc": "text/x-component", + "htm": "text/html", + "html": "text/html", + "htmls": "text/html", + "htt": "text/webviewhtml", + "htx": "text/html", + "ice": "x-conference/x-cooltalk", + "ico": "image/x-icon", + "ics": "text/calendar", + "icz": "text/calendar", + "idc": "text/plain", + "ief": "image/ief", + "iefs": "image/ief", + "iges": "application/iges", + "igs": "application/iges", + "ima": "application/x-ima", + "imap": "application/x-httpd-imap", + "inf": "application/inf", + "ins": "application/x-internett-signup", + "ip": "application/x-ip2", + "isu": "video/x-isvideo", + "it": "audio/it", + "iv": "application/x-inventor", + "ivr": "i-world/i-vrml", + "ivy": "application/x-livescreen", + "jam": "audio/x-jam", + "jav": "text/x-java-source", + "java": "text/x-java-source", + "jcm": "application/x-java-commerce", + "jfif-tbnl": "image/jpeg", + "jfif": "image/jpeg", + "jnlp": "application/x-java-jnlp-file", + "jpe": "image/jpeg", + "jpeg": "image/jpeg", + "jpg": "image/jpeg", + "jps": "image/x-jps", + "js": "application/javascript", + "json": "application/json", + "jut": "image/jutvision", + "kar": "audio/midi", + "karbon": "application/vnd.kde.karbon", + "kfo": "application/vnd.kde.kformula", + "flw": "application/vnd.kde.kivio", + "kml": "application/vnd.google-earth.kml+xml", + "kmz": "application/vnd.google-earth.kmz", + "kon": "application/vnd.kde.kontour", + "kpr": "application/vnd.kde.kpresenter", + "kpt": "application/vnd.kde.kpresenter", + "ksp": "application/vnd.kde.kspread", + "kwd": "application/vnd.kde.kword", + "kwt": "application/vnd.kde.kword", + "ksh": "text/x-scriptksh", + "la": "audio/nspaudio", + "lam": "audio/x-liveaudio", + "latex": "application/x-latex", + "lha": "application/lha", + "lhx": "application/octet-stream", + "list": "text/plain", + "lma": "audio/nspaudio", + "log": "text/plain", + "lsp": "text/x-scriptlisp", + "lst": "text/plain", + "lsx": "text/x-la-asf", + "ltx": "application/x-latex", + "lzh": "application/octet-stream", + "lzx": "application/lzx", + "m1v": "video/mpeg", + "m2a": "audio/mpeg", + "m2v": "video/mpeg", + "m3u": "audio/x-mpegurl", + "m": "text/x-m", + "man": "application/x-troff-man", + "manifest": "text/cache-manifest", + "map": "application/x-navimap", + "mar": "text/plain", + "mbd": "application/mbedlet", + "mc$": "application/x-magic-cap-package-10", + "mcd": "application/mcad", + "mcf": "text/mcf", + "mcp": "application/netmc", + "me": "application/x-troff-me", + "mht": "message/rfc822", + "mhtml": "message/rfc822", + "mid": "application/x-midi", + "midi": "application/x-midi", + "mif": "application/x-frame", + "mime": "message/rfc822", + "mjf": "audio/x-vndaudioexplosionmjuicemediafile", + "mjpg": "video/x-motion-jpeg", + "mm": "application/base64", + "mme": "application/base64", + "mod": "audio/mod", + "moov": "video/quicktime", + "mov": "video/quicktime", + "movie": "video/x-sgi-movie", + "mp2": "audio/mpeg", + "mp3": "audio/mpeg3", + "mp4": "video/mp4", + "mpa": "audio/mpeg", + "mpc": "application/x-project", + "mpe": "video/mpeg", + "mpeg": "video/mpeg", + "mpg": "video/mpeg", + "mpga": "audio/mpeg", + "mpp": "application/vndms-project", + "mpt": "application/x-project", + "mpv": "application/x-project", + "mpx": "application/x-project", + "mrc": "application/marc", + "ms": "application/x-troff-ms", + "mv": "video/x-sgi-movie", + "my": "audio/make", + "mzz": "application/x-vndaudioexplosionmzz", + "nap": "image/naplps", + "naplps": "image/naplps", + "nc": "application/x-netcdf", + "ncm": "application/vndnokiaconfiguration-message", + "nif": "image/x-niff", + "niff": "image/x-niff", + "nix": "application/x-mix-transfer", + "nsc": "application/x-conference", + "nvd": "application/x-navidoc", + "o": "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", + "odi": "application/vnd.oasis.opendocument.image", + "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", + "omc": "application/x-omc", + "omcd": "application/x-omcdatamaker", + "omcr": "application/x-omcregerator", + "otc": "application/vnd.oasis.opendocument.chart-template", + "otf": "application/vnd.oasis.opendocument.formula-template", + "otg": "application/vnd.oasis.opendocument.graphics-template", + "oth": "application/vnd.oasis.opendocument.text-web", + "oti": "application/vnd.oasis.opendocument.image-template", + "otm": "application/vnd.oasis.opendocument.text-master", + "otp": "application/vnd.oasis.opendocument.presentation-template", + "ots": "application/vnd.oasis.opendocument.spreadsheet-template", + "ott": "application/vnd.oasis.opendocument.text-template", + "p10": "application/pkcs10", + "p12": "application/pkcs-12", + "p7a": "application/x-pkcs7-signature", + "p7c": "application/pkcs7-mime", + "p7m": "application/pkcs7-mime", + "p7r": "application/x-pkcs7-certreqresp", + "p7s": "application/pkcs7-signature", + "p": "text/x-pascal", + "part": "application/pro_eng", + "pas": "text/pascal", + "pbm": "image/x-portable-bitmap", + "pcl": "application/vndhp-pcl", + "pct": "image/x-pict", + "pcx": "image/x-pcx", + "pdb": "chemical/x-pdb", + "pdf": "application/pdf", + "pfunk": "audio/make", + "pgm": "image/x-portable-graymap", + "pic": "image/pict", + "pict": "image/pict", + "pkg": "application/x-newton-compatible-pkg", + "pko": "application/vndms-pkipko", + "pl": "text/x-scriptperl", + "plx": "application/x-pixclscript", + "pm4": "application/x-pagemaker", + "pm5": "application/x-pagemaker", + "pm": "text/x-scriptperl-module", + "png": "image/png", + "pnm": "application/x-portable-anymap", + "pot": "application/mspowerpoint", + "pov": "model/x-pov", + "ppa": "application/vndms-powerpoint", + "ppm": "image/x-portable-pixmap", + "pps": "application/mspowerpoint", + "ppt": "application/mspowerpoint", + "ppz": "application/mspowerpoint", + "pre": "application/x-freelance", + "prt": "application/pro_eng", + "ps": "application/postscript", + "psd": "application/octet-stream", + "pvu": "paleovu/x-pv", + "pwz": "application/vndms-powerpoint", + "py": "text/x-scriptphyton", + "pyc": "applicaiton/x-bytecodepython", + "qcp": "audio/vndqcelp", + "qd3": "x-world/x-3dmf", + "qd3d": "x-world/x-3dmf", + "qif": "image/x-quicktime", + "qt": "video/quicktime", + "qtc": "video/x-qtc", + "qti": "image/x-quicktime", + "qtif": "image/x-quicktime", + "ra": "audio/x-pn-realaudio", + "ram": "audio/x-pn-realaudio", + "rar": "application/x-rar-compressed", + "ras": "application/x-cmu-raster", + "rast": "image/cmu-raster", + "rexx": "text/x-scriptrexx", + "rf": "image/vndrn-realflash", + "rgb": "image/x-rgb", + "rm": "application/vndrn-realmedia", + "rmi": "audio/mid", + "rmm": "audio/x-pn-realaudio", + "rmp": "audio/x-pn-realaudio", + "rng": "application/ringing-tones", + "rnx": "application/vndrn-realplayer", + "roff": "application/x-troff", + "rp": "image/vndrn-realpix", + "rpm": "audio/x-pn-realaudio-plugin", + "rt": "text/vndrn-realtext", + "rtf": "text/richtext", + "rtx": "text/richtext", + "rv": "video/vndrn-realvideo", + "s": "text/x-asm", + "s3m": "audio/s3m", + "s7z": "application/x-7z-compressed", + "saveme": "application/octet-stream", + "sbk": "application/x-tbook", + "scm": "text/x-scriptscheme", + "sdml": "text/plain", + "sdp": "application/sdp", + "sdr": "application/sounder", + "sea": "application/sea", + "set": "application/set", + "sgm": "text/x-sgml", + "sgml": "text/x-sgml", + "sh": "text/x-scriptsh", + "shar": "application/x-bsh", + "shtml": "text/x-server-parsed-html", + "sid": "audio/x-psid", + "skd": "application/x-koan", + "skm": "application/x-koan", + "skp": "application/x-koan", + "skt": "application/x-koan", + "sit": "application/x-stuffit", + "sitx": "application/x-stuffitx", + "sl": "application/x-seelogo", + "smi": "application/smil", + "smil": "application/smil", + "snd": "audio/basic", + "sol": "application/solids", + "spc": "text/x-speech", + "spl": "application/futuresplash", + "spr": "application/x-sprite", + "sprite": "application/x-sprite", + "spx": "audio/ogg", + "src": "application/x-wais-source", + "ssi": "text/x-server-parsed-html", + "ssm": "application/streamingmedia", + "sst": "application/vndms-pkicertstore", + "step": "application/step", + "stl": "application/sla", + "stp": "application/step", + "sv4cpio": "application/x-sv4cpio", + "sv4crc": "application/x-sv4crc", + "svf": "image/vnddwg", + "svg": "image/svg+xml", + "svr": "application/x-world", + "swf": "application/x-shockwave-flash", + "t": "application/x-troff", + "talk": "text/x-speech", + "tar": "application/x-tar", + "tbk": "application/toolbook", + "tcl": "text/x-scripttcl", + "tcsh": "text/x-scripttcsh", + "tex": "application/x-tex", + "texi": "application/x-texinfo", + "texinfo": "application/x-texinfo", + "text": "text/plain", + "tgz": "application/gnutar", + "tif": "image/tiff", + "tiff": "image/tiff", + "tr": "application/x-troff", + "tsi": "audio/tsp-audio", + "tsp": "application/dsptype", + "tsv": "text/tab-separated-values", + "turbot": "image/florian", + "txt": "text/plain", + "uil": "text/x-uil", + "uni": "text/uri-list", + "unis": "text/uri-list", + "unv": "application/i-deas", + "uri": "text/uri-list", + "uris": "text/uri-list", + "ustar": "application/x-ustar", + "uu": "text/x-uuencode", + "uue": "text/x-uuencode", + "vcd": "application/x-cdlink", + "vcf": "text/x-vcard", + "vcard": "text/x-vcard", + "vcs": "text/x-vcalendar", + "vda": "application/vda", + "vdo": "video/vdo", + "vew": "application/groupwise", + "viv": "video/vivo", + "vivo": "video/vivo", + "vmd": "application/vocaltec-media-desc", + "vmf": "application/vocaltec-media-file", + "voc": "audio/voc", + "vos": "video/vosaic", + "vox": "audio/voxware", + "vqe": "audio/x-twinvq-plugin", + "vqf": "audio/x-twinvq", + "vql": "audio/x-twinvq-plugin", + "vrml": "application/x-vrml", + "vrt": "x-world/x-vrt", + "vsd": "application/x-visio", + "vst": "application/x-visio", + "vsw": "application/x-visio", + "w60": "application/wordperfect60", + "w61": "application/wordperfect61", + "w6w": "application/msword", + "wav": "audio/wav", + "wb1": "application/x-qpro", + "wbmp": "image/vnd.wap.wbmp", + "web": "application/vndxara", + "wiz": "application/msword", + "wk1": "application/x-123", + "wmf": "windows/metafile", + "wml": "text/vnd.wap.wml", + "wmlc": "application/vnd.wap.wmlc", + "wmls": "text/vnd.wap.wmlscript", + "wmlsc": "application/vnd.wap.wmlscriptc", + "word": "application/msword", + "wp5": "application/wordperfect", + "wp6": "application/wordperfect", + "wp": "application/wordperfect", + "wpd": "application/wordperfect", + "wq1": "application/x-lotus", + "wri": "application/mswrite", + "wrl": "application/x-world", + "wrz": "model/vrml", + "wsc": "text/scriplet", + "wsrc": "application/x-wais-source", + "wtk": "application/x-wintalk", + "x-png": "image/png", + "xbm": "image/x-xbitmap", + "xdr": "video/x-amt-demorun", + "xgz": "xgl/drawing", + "xif": "image/vndxiff", + "xl": "application/excel", + "xla": "application/excel", + "xlb": "application/excel", + "xlc": "application/excel", + "xld": "application/excel", + "xlk": "application/excel", + "xll": "application/excel", + "xlm": "application/excel", + "xls": "application/excel", + "xlt": "application/excel", + "xlv": "application/excel", + "xlw": "application/excel", + "xm": "audio/xm", + "xml": "text/xml", + "xmz": "xgl/movie", + "xpix": "application/x-vndls-xpix", + "xpm": "image/x-xpixmap", + "xsr": "video/x-amt-showrun", + "xwd": "image/x-xwd", + "xyz": "chemical/x-pdb", + "z": "application/x-compress", + "zip": "application/zip", + "zoo": "application/octet-stream", + "zsh": "text/x-scriptzsh", + "docx": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", + "docm": "application/vnd.ms-word.document.macroEnabled.12", + "dotx": "application/vnd.openxmlformats-officedocument.wordprocessingml.template", + "dotm": "application/vnd.ms-word.template.macroEnabled.12", + "xlsx": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + "xlsm": "application/vnd.ms-excel.sheet.macroEnabled.12", + "xltx": "application/vnd.openxmlformats-officedocument.spreadsheetml.template", + "xltm": "application/vnd.ms-excel.template.macroEnabled.12", + "xlsb": "application/vnd.ms-excel.sheet.binary.macroEnabled.12", + "xlam": "application/vnd.ms-excel.addin.macroEnabled.12", + "pptx": "application/vnd.openxmlformats-officedocument.presentationml.presentation", + "pptm": "application/vnd.ms-powerpoint.presentation.macroEnabled.12", + "ppsx": "application/vnd.openxmlformats-officedocument.presentationml.slideshow", + "ppsm": "application/vnd.ms-powerpoint.slideshow.macroEnabled.12", + "potx": "application/vnd.openxmlformats-officedocument.presentationml.template", + "potm": "application/vnd.ms-powerpoint.template.macroEnabled.12", + "ppam": "application/vnd.ms-powerpoint.addin.macroEnabled.12", + "sldx": "application/vnd.openxmlformats-officedocument.presentationml.slide", + "sldm": "application/vnd.ms-powerpoint.slide.macroEnabled.12", + "thmx": "application/vnd.ms-officetheme", + "onetoc": "application/onenote", + "onetoc2": "application/onenote", + "onetmp": "application/onenote", + "onepkg": "application/onenote", + "key": "application/x-iwork-keynote-sffkey", + "kth": "application/x-iwork-keynote-sffkth", + "nmbtemplate": "application/x-iwork-numbers-sfftemplate", + "numbers": "application/x-iwork-numbers-sffnumbers", + "pages": "application/x-iwork-pages-sffpages", + "template": "application/x-iwork-pages-sfftemplate", + "xpi": "application/x-xpinstall", + "oex": "application/x-opera-extension", +} + +func initMime() { + for k, v := range mimemaps { + mime.AddExtensionType(k, v) + } +}