MimeType.java Source code

Java tutorial

Introduction

Here is the source code for MimeType.java

Source

/**
 * Vosao CMS. Simple CMS for Google App Engine.
 * 
 * Copyright (C) 2009-2010 Vosao development team.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 *
 * email: vosao.dev@gmail.com
 */

//package org.vosao.utils;

import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class MimeType {

    private static String[] mimeTypes = { "323", "text/h323", "acx", "application/internet-property-stream", "ai",
            "application/postscript", "aif", "audio/x-aiff", "aifc", "audio/x-aiff", "aiff", "audio/x-aiff", "asf",
            "video/x-ms-asf", "asr", "video/x-ms-asf", "asx", "video/x-ms-asf", "au", "audio/basic", "avi",
            "video/x-msvideo", "axs", "application/olescript", "bas", "text/plain", "bcpio", "application/x-bcpio",
            "bin", "application/octet-stream", "bmp", "image/bmp", "c", "text/plain", "cat",
            "application/vnd.ms-pkiseccat", "cdf", "application/x-cdf", "cer", "application/x-x509-ca-cert",
            "class", "application/octet-stream", "clp", "application/x-msclip", "cmx", "image/x-cmx", "cod",
            "image/cis-cod", "cpio", "application/x-cpio", "crd", "application/x-mscardfile", "crl",
            "application/pkix-crl", "crt", "application/x-x509-ca-cert", "csh", "application/x-csh", "css",
            "text/css", "dcr", "application/x-director", "der", "application/x-x509-ca-cert", "dir",
            "application/x-director", "dll", "application/x-msdownload", "dms", "application/octet-stream", "doc",
            "application/msword", "dot", "application/msword", "dvi", "application/x-dvi", "dxr",
            "application/x-director", "eps", "application/postscript", "etx", "text/x-setext", "evy",
            "application/envoy", "exe", "application/octet-stream", "fif", "application/fractals", "flr",
            "x-world/x-vrml", "gif", "image/gif", "gtar", "application/x-gtar", "gz", "application/x-gzip", "h",
            "text/plain", "hdf", "application/x-hdf", "hlp", "application/winhlp", "hqx",
            "application/mac-binhex40", "hta", "application/hta", "htc", "text/x-component", "htm", "text/html",
            "html", "text/html", "htt", "text/webviewhtml", "ico", "image/x-icon", "ief", "image/ief", "iii",
            "application/x-iphone", "ins", "application/x-internet-signup", "isp", "application/x-internet-signup",
            "jfif", "image/pipeg", "jpe", "image/jpeg", "jpeg", "image/jpeg", "jpg", "image/jpeg", "js",
            "application/x-javascript", "latex", "application/x-latex", "lha", "application/octet-stream", "lsf",
            "video/x-la-asf", "lsx", "video/x-la-asf", "lzh", "application/octet-stream", "m13",
            "application/x-msmediaview", "m14", "application/x-msmediaview", "m3u", "audio/x-mpegurl", "man",
            "application/x-troff-man", "mdb", "application/x-msaccess", "me", "application/x-troff-me", "mht",
            "message/rfc822", "mhtml", "message/rfc822", "mid", "audio/mid", "mny", "application/x-msmoney", "mov",
            "video/quicktime", "movie", "video/x-sgi-movie", "mp2", "video/mpeg", "mp3", "audio/mpeg", "mpa",
            "video/mpeg", "mpe", "video/mpeg", "mpeg", "video/mpeg", "mpg", "video/mpeg", "mpp",
            "application/vnd.ms-project", "mpv2", "video/mpeg", "ms", "application/x-troff-ms", "mvb",
            "application/x-msmediaview", "nws", "message/rfc822", "oda", "application/oda", "p10",
            "application/pkcs10", "p12", "application/x-pkcs12", "p7b", "application/x-pkcs7-certificates", "p7c",
            "application/x-pkcs7-mime", "p7m", "application/x-pkcs7-mime", "p7r", "application/x-pkcs7-certreqresp",
            "p7s", "application/x-pkcs7-signature", "pbm", "image/x-portable-bitmap", "pdf", "application/pdf",
            "pfx", "application/x-pkcs12", "pgm", "image/x-portable-graymap", "pko", "application/ynd.ms-pkipko",
            "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", "pot", "application/vnd.ms-powerpoint", "ppm", "image/x-portable-pixmap",
            "pps", "application/vnd.ms-powerpoint", "ppt", "application/vnd.ms-powerpoint", "prf",
            "application/pics-rules", "ps", "application/postscript", "pub", "application/x-mspublisher", "qt",
            "video/quicktime", "ra", "audio/x-pn-realaudio", "ram", "audio/x-pn-realaudio", "ras",
            "image/x-cmu-raster", "rgb", "image/x-rgb", "rmi", "audio/mid", "roff", "application/x-troff", "rtf",
            "application/rtf", "rtx", "text/richtext", "scd", "application/x-msschedule", "sct", "text/scriptlet",
            "setpay", "application/set-payment-initiation", "setreg", "application/set-registration-initiation",
            "sh", "application/x-sh", "shar", "application/x-shar", "sit", "application/x-stuffit", "snd",
            "audio/basic", "spc", "application/x-pkcs7-certificates", "spl", "application/futuresplash", "src",
            "application/x-wais-source", "sst", "application/vnd.ms-pkicertstore", "stl",
            "application/vnd.ms-pkistl", "stm", "text/html", "svg", "image/svg+xml", "sv4cpio",
            "application/x-sv4cpio", "sv4crc", "application/x-sv4crc", "swf", "application/x-shockwave-flash", "t",
            "application/x-troff", "tar", "application/x-tar", "tcl", "application/x-tcl", "tex",
            "application/x-tex", "texi", "application/x-texinfo", "texinfo", "application/x-texinfo", "tgz",
            "application/x-compressed", "tif", "image/tiff", "tiff", "image/tiff", "tr", "application/x-troff",
            "trm", "application/x-msterminal", "tsv", "text/tab-separated-values", "txt", "text/plain", "uls",
            "text/iuls", "ustar", "application/x-ustar", "vcf", "text/x-vcard", "vrml", "x-world/x-vrml", "wav",
            "audio/x-wav", "wcm", "application/vnd.ms-works", "wdb", "application/vnd.ms-works", "wks",
            "application/vnd.ms-works", "wmf", "application/x-msmetafile", "wps", "application/vnd.ms-works", "wri",
            "application/x-mswrite", "wrl", "x-world/x-vrml", "wrz", "x-world/x-vrml", "xaf", "x-world/x-vrml",
            "xbm", "image/x-xbitmap", "xla", "application/vnd.ms-excel", "xlc", "application/vnd.ms-excel", "xlm",
            "application/vnd.ms-excel", "xls", "application/vnd.ms-excel", "xlt", "application/vnd.ms-excel", "xlw",
            "application/vnd.ms-excel", "xml", "text/xml", "xof", "x-world/x-vrml", "xpm", "image/x-xpixmap", "xwd",
            "image/x-xwindowdump", "z", "application/x-compress", "zip", "application/zip" };

    private static Map<String, String> mimeMap;

    static {
        mimeMap = new HashMap<String, String>();
        Iterator<String> i = Arrays.asList(mimeTypes).iterator();
        while (i.hasNext()) {
            String key = i.next();
            String code = i.next();
            mimeMap.put(key, code);
        }
    }

    private static String DEFAULT = "application/octet-stream";

    public static String getContentTypeByExt(final String ext) {
        String key = ext.toLowerCase();
        if (mimeMap.containsKey(key)) {
            return mimeMap.get(key);
        }
        return DEFAULT;
    }

}