如何从文件扩展名中获得MIME类型?


当前回答

我已经编译了一个有名的mime类型和内容类型值的来源列表,这些值仅以文件扩展名为键(目前)。

nuget包在这里https://www.nuget.org/packages/FTTLib.dll/

来源在这里https://github.com/brondavies/filetypetranslator/

这个库被设计成:

无外部依赖 没有文件系统访问权限 内存占用小 简单的静态方法(没有扩展方法和可实例化类) 不区分大小写 可移植-工作在应用程序针对任何CLR(。NET 2.0 +)

其他回答

.NET Core获取MimeType的方法:

添加依赖关系

Microsoft.AspNetCore.StaticFiles

private string GetMimeType(string fileName)
{
    var provider = new FileExtensionContentTypeProvider();
    if (!provider.TryGetContentType(fileName, out var contentType))
    {
        contentType = "application/octet-stream";
    }
    return contentType;            
}

我更新了一些剧本。以防有人需要

function getMime(){ let ext = fileUpload.value.split('.')[1]; let myOutput = getMimeType(ext); mimeType.value=myOutput; } function getMimeType(ext) { if (!ext.startsWith(".")) { ext = "." + ext; } let myList = [ {"key": ".323", "value": "text/h323"}, {"key": ".3g2", "value": "video/3gpp2"}, {"key": ".3gp", "value": "video/3gpp"}, {"key": ".3gp2", "value": "video/3gpp2"}, {"key": ".3gpp", "value": "video/3gpp"}, {"key": ".7z", "value": "application/x-7z-compressed"}, {"key": ".aa", "value": "audio/audible"}, {"key": ".AAC", "value": "audio/aac"}, {"key": ".aaf", "value": "application/octet-stream"}, {"key": ".aax", "value": "audio/vnd.audible.aax"}, {"key": ".ac3", "value": "audio/ac3"}, {"key": ".aca", "value": "application/octet-stream"}, {"key": ".accda", "value": "application/msaccess.addin"}, {"key": ".accdb", "value": "application/msaccess"}, {"key": ".accdc", "value": "application/msaccess.cab"}, {"key": ".accde", "value": "application/msaccess"}, {"key": ".accdr", "value": "application/msaccess.runtime"}, {"key": ".accdt", "value": "application/msaccess"}, {"key": ".accdw", "value": "application/msaccess.webapplication"}, {"key": ".accft", "value": "application/msaccess.ftemplate"}, {"key": ".acx", "value": "application/internet-property-stream"}, {"key": ".AddIn", "value": "text/xml"}, {"key": ".ade", "value": "application/msaccess"}, {"key": ".adobebridge", "value": "application/x-bridge-url"}, {"key": ".adp", "value": "application/msaccess"}, {"key": ".ADT", "value": "audio/vnd.dlna.adts"}, {"key": ".ADTS", "value": "audio/aac"}, {"key": ".afm", "value": "application/octet-stream"}, {"key": ".ai", "value": "application/postscript"}, {"key": ".aif", "value": "audio/x-aiff"}, {"key": ".aifc", "value": "audio/aiff"}, {"key": ".aiff", "value": "audio/aiff"}, {"key": ".air", "value": "application/vnd.adobe.air-application-installer-package+zip"}, {"key": ".amc", "value": "application/x-mpeg"}, {"key": ".application", "value": "application/x-ms-application"}, {"key": ".art", "value": "image/x-jg"}, {"key": ".asa", "value": "application/xml"}, {"key": ".asax", "value": "application/xml"}, {"key": ".ascx", "value": "application/xml"}, {"key": ".asd", "value": "application/octet-stream"}, {"key": ".asf", "value": "video/x-ms-asf"}, {"key": ".ashx", "value": "application/xml"}, {"key": ".asi", "value": "application/octet-stream"}, {"key": ".asm", "value": "text/plain"}, {"key": ".asmx", "value": "application/xml"}, {"key": ".aspx", "value": "application/xml"}, {"key": ".asr", "value": "video/x-ms-asf"}, {"key": ".asx", "value": "video/x-ms-asf"}, {"key": ".atom", "value": "application/atom+xml"}, {"key": ".au", "value": "audio/basic"}, {"key": ".avi", "value": "video/x-msvideo"}, {"key": ".axs", "value": "application/olescript"}, {"key": ".bas", "value": "text/plain"}, {"key": ".bcpio", "value": "application/x-bcpio"}, {"key": ".bin", "value": "application/octet-stream"}, {"key": ".bmp", "value": "image/bmp"}, {"key": ".c", "value": "text/plain"}, {"key": ".cab", "value": "application/octet-stream"}, {"key": ".caf", "value": "audio/x-caf"}, {"key": ".calx", "value": "application/vnd.ms-office.calx"}, {"key": ".cat", "value": "application/vnd.ms-pki.seccat"}, {"key": ".cc", "value": "text/plain"}, {"key": ".cd", "value": "text/plain"}, {"key": ".cdda", "value": "audio/aiff"}, {"key": ".cdf", "value": "application/x-cdf"}, {"key": ".cer", "value": "application/x-x509-ca-cert"}, {"key": ".chm", "value": "application/octet-stream"}, {"key": ".class", "value": "application/x-java-applet"}, {"key": ".clp", "value": "application/x-msclip"}, {"key": ".cmx", "value": "image/x-cmx"}, {"key": ".cnf", "value": "text/plain"}, {"key": ".cod", "value": "image/cis-cod"}, {"key": ".config", "value": "application/xml"}, {"key": ".contact", "value": "text/x-ms-contact"}, {"key": ".coverage", "value": "application/xml"}, {"key": ".cpio", "value": "application/x-cpio"}, {"key": ".cpp", "value": "text/plain"}, {"key": ".crd", "value": "application/x-mscardfile"}, {"key": ".crl", "value": "application/pkix-crl"}, {"key": ".crt", "value": "application/x-x509-ca-cert"}, {"key": ".cs", "value": "text/plain"}, {"key": ".csdproj", "value": "text/plain"}, {"key": ".csh", "value": "application/x-csh"}, {"key": ".csproj", "value": "text/plain"}, {"key": ".css", "value": "text/css"}, {"key": ".csv", "value": "text/csv"}, {"key": ".cur", "value": "application/octet-stream"}, {"key": ".cxx", "value": "text/plain"}, {"key": ".dat", "value": "application/octet-stream"}, {"key": ".datasource", "value": "application/xml"}, {"key": ".dbproj", "value": "text/plain"}, {"key": ".dcr", "value": "application/x-director"}, {"key": ".def", "value": "text/plain"}, {"key": ".deploy", "value": "application/octet-stream"}, {"key": ".der", "value": "application/x-x509-ca-cert"}, {"key": ".dgml", "value": "application/xml"}, {"key": ".dib", "value": "image/bmp"}, {"key": ".dif", "value": "video/x-dv"}, {"key": ".dir", "value": "application/x-director"}, {"key": ".disco", "value": "text/xml"}, {"key": ".dll", "value": "application/x-msdownload"}, {"key": ".dll.config", "value": "text/xml"}, {"key": ".dlm", "value": "text/dlm"}, {"key": ".doc", "value": "application/msword"}, {"key": ".docm", "value": "application/vnd.ms-word.document.macroEnabled.12"}, {"key": ".docx", "value": "application/vnd.openxmlformats-officedocument.wordprocessingml.document"}, {"key": ".dot", "value": "application/msword"}, {"key": ".dotm", "value": "application/vnd.ms-word.template.macroEnabled.12"}, {"key": ".dotx", "value": "application/vnd.openxmlformats-officedocument.wordprocessingml.template"}, {"key": ".dsp", "value": "application/octet-stream"}, {"key": ".dsw", "value": "text/plain"}, {"key": ".dtd", "value": "text/xml"}, {"key": ".dtsConfig", "value": "text/xml"}, {"key": ".dv", "value": "video/x-dv"}, {"key": ".dvi", "value": "application/x-dvi"}, {"key": ".dwf", "value": "drawing/x-dwf"}, {"key": ".dwp", "value": "application/octet-stream"}, {"key": ".dxr", "value": "application/x-director"}, {"key": ".eml", "value": "message/rfc822"}, {"key": ".emz", "value": "application/octet-stream"}, {"key": ".eot", "value": "application/octet-stream"}, {"key": ".eps", "value": "application/postscript"}, {"key": ".etl", "value": "application/etl"}, {"key": ".etx", "value": "text/x-setext"}, {"key": ".evy", "value": "application/envoy"}, {"key": ".exe", "value": "application/octet-stream"}, {"key": ".exe.config", "value": "text/xml"}, {"key": ".fdf", "value": "application/vnd.fdf"}, {"key": ".fif", "value": "application/fractals"}, {"key": ".filters", "value": "Application/xml"}, {"key": ".fla", "value": "application/octet-stream"}, {"key": ".flr", "value": "x-world/x-vrml"}, {"key": ".flv", "value": "video/x-flv"}, {"key": ".fsscript", "value": "application/fsharp-script"}, {"key": ".fsx", "value": "application/fsharp-script"}, {"key": ".generictest", "value": "application/xml"}, {"key": ".gif", "value": "image/gif"}, {"key": ".group", "value": "text/x-ms-group"}, {"key": ".gsm", "value": "audio/x-gsm"}, {"key": ".gtar", "value": "application/x-gtar"}, {"key": ".gz", "value": "application/x-gzip"}, {"key": ".h", "value": "text/plain"}, {"key": ".hdf", "value": "application/x-hdf"}, {"key": ".hdml", "value": "text/x-hdml"}, {"key": ".hhc", "value": "application/x-oleobject"}, {"key": ".hhk", "value": "application/octet-stream"}, {"key": ".hhp", "value": "application/octet-stream"}, {"key": ".hlp", "value": "application/winhlp"}, {"key": ".hpp", "value": "text/plain"}, {"key": ".hqx", "value": "application/mac-binhex40"}, {"key": ".hta", "value": "application/hta"}, {"key": ".htc", "value": "text/x-component"}, {"key": ".htm", "value": "text/html"}, {"key": ".html", "value": "text/html"}, {"key": ".htt", "value": "text/webviewhtml"}, {"key": ".hxa", "value": "application/xml"}, {"key": ".hxc", "value": "application/xml"}, {"key": ".hxd", "value": "application/octet-stream"}, {"key": ".hxe", "value": "application/xml"}, {"key": ".hxf", "value": "application/xml"}, {"key": ".hxh", "value": "application/octet-stream"}, {"key": ".hxi", "value": "application/octet-stream"}, {"key": ".hxk", "value": "application/xml"}, {"key": ".hxq", "value": "application/octet-stream"}, {"key": ".hxr", "value": "application/octet-stream"}, {"key": ".hxs", "value": "application/octet-stream"}, {"key": ".hxt", "value": "text/html"}, {"key": ".hxv", "value": "application/xml"}, {"key": ".hxw", "value": "application/octet-stream"}, {"key": ".hxx", "value": "text/plain"}, {"key": ".i", "value": "text/plain"}, {"key": ".ico", "value": "image/x-icon"}, {"key": ".ics", "value": "application/octet-stream"}, {"key": ".idl", "value": "text/plain"}, {"key": ".ief", "value": "image/ief"}, {"key": ".iii", "value": "application/x-iphone"}, {"key": ".inc", "value": "text/plain"}, {"key": ".inf", "value": "application/octet-stream"}, {"key": ".inl", "value": "text/plain"}, {"key": ".ins", "value": "application/x-internet-signup"}, {"key": ".ipa", "value": "application/x-itunes-ipa"}, {"key": ".ipg", "value": "application/x-itunes-ipg"}, {"key": ".ipproj", "value": "text/plain"}, {"key": ".ipsw", "value": "application/x-itunes-ipsw"}, {"key": ".iqy", "value": "text/x-ms-iqy"}, {"key": ".isp", "value": "application/x-internet-signup"}, {"key": ".ite", "value": "application/x-itunes-ite"}, {"key": ".itlp", "value": "application/x-itunes-itlp"}, {"key": ".itms", "value": "application/x-itunes-itms"}, {"key": ".itpc", "value": "application/x-itunes-itpc"}, {"key": ".IVF", "value": "video/x-ivf"}, {"key": ".jar", "value": "application/java-archive"}, {"key": ".java", "value": "application/octet-stream"}, {"key": ".jck", "value": "application/liquidmotion"}, {"key": ".jcz", "value": "application/liquidmotion"}, {"key": ".jfif", "value": "image/pjpeg"}, {"key": ".jnlp", "value": "application/x-java-jnlp-file"}, {"key": ".jpb", "value": "application/octet-stream"}, {"key": ".jpe", "value": "image/jpeg"}, {"key": ".jpeg", "value": "image/jpeg"}, {"key": ".jpg", "value": "image/jpeg"}, {"key": ".js", "value": "application/x-javascript"}, {"key": ".json", "value": "application/json"}, {"key": ".jsx", "value": "text/jscript"}, {"key": ".jsxbin", "value": "text/plain"}, {"key": ".latex", "value": "application/x-latex"}, {"key": ".library-ms", "value": "application/windows-library+xml"}, {"key": ".lit", "value": "application/x-ms-reader"}, {"key": ".loadtest", "value": "application/xml"}, {"key": ".lpk", "value": "application/octet-stream"}, {"key": ".lsf", "value": "video/x-la-asf"}, {"key": ".lst", "value": "text/plain"}, {"key": ".lsx", "value": "video/x-la-asf"}, {"key": ".lzh", "value": "application/octet-stream"}, {"key": ".m13", "value": "application/x-msmediaview"}, {"key": ".m14", "value": "application/x-msmediaview"}, {"key": ".m1v", "value": "video/mpeg"}, {"key": ".m2t", "value": "video/vnd.dlna.mpeg-tts"}, {"key": ".m2ts", "value": "video/vnd.dlna.mpeg-tts"}, {"key": ".m2v", "value": "video/mpeg"}, {"key": ".m3u", "value": "audio/x-mpegurl"}, {"key": ".m3u8", "value": "audio/x-mpegurl"}, {"key": ".m4a", "value": "audio/m4a"}, {"key": ".m4b", "value": "audio/m4b"}, {"key": ".m4p", "value": "audio/m4p"}, {"key": ".m4r", "value": "audio/x-m4r"}, {"key": ".m4v", "value": "video/x-m4v"}, {"key": ".mac", "value": "image/x-macpaint"}, {"key": ".mak", "value": "text/plain"}, {"key": ".man", "value": "application/x-troff-man"}, {"key": ".manifest", "value": "application/x-ms-manifest"}, {"key": ".map", "value": "text/plain"}, {"key": ".master", "value": "application/xml"}, {"key": ".mda", "value": "application/msaccess"}, {"key": ".mdb", "value": "application/x-msaccess"}, {"key": ".mde", "value": "application/msaccess"}, {"key": ".mdp", "value": "application/octet-stream"}, {"key": ".me", "value": "application/x-troff-me"}, {"key": ".mfp", "value": "application/x-shockwave-flash"}, {"key": ".mht", "value": "message/rfc822"}, {"key": ".mhtml", "value": "message/rfc822"}, {"key": ".mid", "value": "audio/mid"}, {"key": ".midi", "value": "audio/mid"}, {"key": ".mix", "value": "application/octet-stream"}, {"key": ".mk", "value": "text/plain"}, {"key": ".mmf", "value": "application/x-smaf"}, {"key": ".mno", "value": "text/xml"}, {"key": ".mny", "value": "application/x-msmoney"}, {"key": ".mod", "value": "video/mpeg"}, {"key": ".mov", "value": "video/quicktime"}, {"key": ".movie", "value": "video/x-sgi-movie"}, {"key": ".mp2", "value": "video/mpeg"}, {"key": ".mp2v", "value": "video/mpeg"}, {"key": ".mp3", "value": "audio/mpeg"}, {"key": ".mp4", "value": "video/mp4"}, {"key": ".mp4v", "value": "video/mp4"}, {"key": ".mpa", "value": "video/mpeg"}, {"key": ".mpe", "value": "video/mpeg"}, {"key": ".mpeg", "value": "video/mpeg"}, {"key": ".mpf", "value": "application/vnd.ms-mediapackage"}, {"key": ".mpg", "value": "video/mpeg"}, {"key": ".mpp", "value": "application/vnd.ms-project"}, {"key": ".mpv2", "value": "video/mpeg"}, {"key": ".mqv", "value": "video/quicktime"}, {"key": ".ms", "value": "application/x-troff-ms"}, {"key": ".msi", "value": "application/octet-stream"}, {"key": ".mso", "value": "application/octet-stream"}, {"key": ".mts", "value": "video/vnd.dlna.mpeg-tts"}, {"key": ".mtx", "value": "application/xml"}, {"key": ".mvb", "value": "application/x-msmediaview"}, {"key": ".mvc", "value": "application/x-miva-compiled"}, {"key": ".mxp", "value": "application/x-mmxp"}, {"key": ".nc", "value": "application/x-netcdf"}, {"key": ".nsc", "value": "video/x-ms-asf"}, {"key": ".nws", "value": "message/rfc822"}, {"key": ".ocx", "value": "application/octet-stream"}, {"key": ".oda", "value": "application/oda"}, {"key": ".odc", "value": "text/x-ms-odc"}, {"key": ".odh", "value": "text/plain"}, {"key": ".odl", "value": "text/plain"}, {"key": ".odp", "value": "application/vnd.oasis.opendocument.presentation"}, {"key": ".ods", "value": "application/oleobject"}, {"key": ".odt", "value": "application/vnd.oasis.opendocument.text"}, {"key": ".webtest", "value": "application/xml"}, {"key": ".wiq", "value": "application/xml"}, {"key": ".wiz", "value": "application/msword"}, {"key": ".wks", "value": "application/vnd.ms-works"}, {"key": ".WLMP", "value": "application/wlmoviemaker"}, {"key": ".wlpginstall", "value": "application/x-wlpg-detect"}, {"key": ".wlpginstall3", "value": "application/x-wlpg3-detect"}, {"key": ".wm", "value": "video/x-ms-wm"}, {"key": ".wma", "value": "audio/x-ms-wma"}, {"key": ".wmd", "value": "application/x-ms-wmd"}, {"key": ".wmf", "value": "application/x-msmetafile"}, {"key": ".wml", "value": "text/vnd.wap.wml"}, {"key": ".wmlc", "value": "application/vnd.wap.wmlc"}, {"key": ".wmls", "value": "text/vnd.wap.wmlscript"}, {"key": ".wmlsc", "value": "application/vnd.wap.wmlscriptc"}, {"key": ".wmp", "value": "video/x-ms-wmp"}, {"key": ".wmv", "value": "video/x-ms-wmv"}, {"key": ".wmx", "value": "video/x-ms-wmx"}, {"key": ".wmz", "value": "application/x-ms-wmz"}, {"key": ".wpl", "value": "application/vnd.ms-wpl"}, {"key": ".wps", "value": "application/vnd.ms-works"}, {"key": ".wri", "value": "application/x-mswrite"}, {"key": ".wrl", "value": "x-world/x-vrml"}, {"key": ".wrz", "value": "x-world/x-vrml"}, {"key": ".wsc", "value": "text/scriptlet"}, {"key": ".wsdl", "value": "text/xml"}, {"key": ".wvx", "value": "video/x-ms-wvx"}, {"key": ".x", "value": "application/directx"}, {"key": ".xaf", "value": "x-world/x-vrml"}, {"key": ".xaml", "value": "application/xaml+xml"}, {"key": ".xap", "value": "application/x-silverlight-app"}, {"key": ".xbap", "value": "application/x-ms-xbap"}, {"key": ".xbm", "value": "image/x-xbitmap"}, {"key": ".xdr", "value": "text/plain"}, {"key": ".xht", "value": "application/xhtml+xml"}, {"key": ".xhtml", "value": "application/xhtml+xml"}, {"key": ".xla", "value": "application/vnd.ms-excel"}, {"key": ".xlam", "value": "application/vnd.ms-excel.addin.macroEnabled.12"}, {"key": ".xlc", "value": "application/vnd.ms-excel"}, {"key": ".xld", "value": "application/vnd.ms-excel"}, {"key": ".xlk", "value": "application/vnd.ms-excel"}, {"key": ".xll", "value": "application/vnd.ms-excel"}, {"key": ".xlm", "value": "application/vnd.ms-excel"}, {"key": ".xls", "value": "application/vnd.ms-excel"}, {"key": ".xlsb", "value": "application/vnd.ms-excel.sheet.binary.macroEnabled.12"}, {"key": ".xlsm", "value": "application/vnd.ms-excel.sheet.macroEnabled.12"}, {"key": ".xlsx", "value": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}, {"key": ".xlt", "value": "application/vnd.ms-excel"}, {"key": ".xltm", "value": "application/vnd.ms-excel.template.macroEnabled.12"}, {"key": ".xltx", "value": "application/vnd.openxmlformats-officedocument.spreadsheetml.template"}, {"key": ".xlw", "value": "application/vnd.ms-excel"}, {"key": ".xml", "value": "text/xml"}, {"key": ".xmta", "value": "application/xml"}, {"key": ".xof", "value": "x-world/x-vrml"}, {"key": ".XOML", "value": "text/plain"}, {"key": ".xpm", "value": "image/x-xpixmap"}, {"key": ".xps", "value": "application/vnd.ms-xpsdocument"}, {"key": ".xrm-ms", "value": "text/xml"}, {"key": ".xsc", "value": "application/xml"}, {"key": ".xsd", "value": "text/xml"}, {"key": ".xsf", "value": "text/xml"}, {"key": ".xsl", "value": "text/xml"}, {"key": ".xslt", "value": "text/xml"}, {"key": ".xsn", "value": "application/octet-stream"}, {"key": ".xss", "value": "application/xml"}, {"key": ".xtp", "value": "application/octet-stream"}, {"key": ".xwd", "value": "image/x-xwindowdump"}, {"key": ".z", "value": "application/x-compress"}, {"key": ".zip", "value": "application/x-zip-compressed"} ] let index = myList.map((o) => o.key).indexOf(ext); let mime = myList[index]["value"]; return mime } <p><input id='fileUpload' type='file' name='fileUpload' onChange='getMime()'></p> <p>MimeType: <input id='mimeType' type='text' name='mimeType'></p>

你可以使用这个helper函数:

private string GetMimeType (string fileName)
{
    string mimeType = "application/unknown";
    string ext = System.IO.Path.GetExtension(fileName).ToLower();
    Microsoft.Win32.RegistryKey regKey = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey(ext);
    if (regKey != null && regKey.GetValue("Content Type") != null)
    mimeType = regKey.GetValue("Content Type").ToString();
    return mimeType;
}

FileExtension处理文件扩展名,而不是Mime。用户可以更改文件扩展名,因此请检查Mime。代码示例通过文件扩展名关联Mime,这是错误的,不能工作。

需要获取内容类型文件,并检查表Mime contetType该文件根据文件扩展名。现在,如何获得文件的内容类型?

使用FileUpload是这样的: 现在,如果我已经有文件,捕捉你的ContentType?

更新

对于许多贡献者添加的最新映射,请参阅这个GitHub存储库:

https://github.com/samuelneff/MimeTypeMap

和NuGet包

https://www.nuget.org/packages/MimeTypeMapOfficial/


我发现我的应用程序使用的许多mime类型不在默认的Windows注册表中,其他类型在注册表中,但不在IIS包含的列表中。我从这些地点整理了一个列表,并添加了一些我们使用的其他地点。

编辑:在这里查看最新版本的贡献,包括一个有效和确定的双向映射。

private static IDictionary<string, string> _mappings = new Dictionary<string, string>(StringComparer.InvariantCultureIgnoreCase) {

        #region Big freaking list of mime types
        // combination of values from Windows 7 Registry and 
        // from C:\Windows\System32\inetsrv\config\applicationHost.config
        // some added, including .7z and .dat
        {".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/x-aiff"},
        {".aifc", "audio/aiff"},
        {".aiff", "audio/aiff"},
        {".air", "application/vnd.adobe.air-application-installer-package+zip"},
        {".amc", "application/x-mpeg"},
        {".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"},
        {".axs", "application/olescript"},
        {".bas", "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"},
        {".chm", "application/octet-stream"},
        {".class", "application/x-java-applet"},
        {".clp", "application/x-msclip"},
        {".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"},
        {".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"},
        {".dwp", "application/octet-stream"},
        {".dxr", "application/x-director"},
        {".eml", "message/rfc822"},
        {".emz", "application/octet-stream"},
        {".eot", "application/octet-stream"},
        {".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"},
        {".flr", "x-world/x-vrml"},
        {".flv", "video/x-flv"},
        {".fsscript", "application/fsharp-script"},
        {".fsx", "application/fsharp-script"},
        {".generictest", "application/xml"},
        {".gif", "image/gif"},
        {".group", "text/x-ms-group"},
        {".gsm", "audio/x-gsm"},
        {".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"},
        {".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", "application/octet-stream"},
        {".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/x-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"},
        {".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"},
        {".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"},
        {".odc", "text/x-ms-odc"},
        {".odh", "text/plain"},
        {".odl", "text/plain"},
        {".odp", "application/vnd.oasis.opendocument.presentation"},
        {".ods", "application/oleobject"},
        {".odt", "application/vnd.oasis.opendocument.text"},
        {".one", "application/onenote"},
        {".onea", "application/onenote"},
        {".onepkg", "application/onenote"},
        {".onetmp", "application/onenote"},
        {".onetoc", "application/onenote"},
        {".onetoc2", "application/onenote"},
        {".orderedtest", "application/xml"},
        {".osdx", "application/opensearchdescription+xml"},
        {".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"},
        {".psc1", "application/PowerShell"},
        {".psd", "application/octet-stream"},
        {".psess", "application/xml"},
        {".psm", "application/octet-stream"},
        {".psp", "application/octet-stream"},
        {".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/octet-stream"},
        {".ras", "image/x-cmu-raster"},
        {".rat", "application/rat-file"},
        {".rc", "text/plain"},
        {".rc2", "text/plain"},
        {".rct", "text/plain"},
        {".rdlc", "application/xml"},
        {".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"},
        {".ruleset", "application/xml"},
        {".s", "text/plain"},
        {".safariextz", "application/x-safari-safariextz"},
        {".scd", "application/x-msschedule"},
        {".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", "application/x-sh"},
        {".shar", "application/x-shar"},
        {".shtml", "text/html"},
        {".sit", "application/x-stuffit"},
        {".sitemap", "application/xml"},
        {".skin", "application/xml"},
        {".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"},
        {".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"},
        {".swf", "application/x-shockwave-flash"},
        {".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/octet-stream"},
        {".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"},
        {".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"},
        {".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"},
        {".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"},
        {".xtp", "application/octet-stream"},
        {".xwd", "image/x-xwindowdump"},
        {".z", "application/x-compress"},
        {".zip", "application/x-zip-compressed"},
        #endregion
        
        };

public static string GetMimeType(string extension)
{
    if (extension == null)
    {
        throw new ArgumentNullException("extension");
    }

    if (!extension.StartsWith("."))
    {
        extension = "." + extension;
    }
    
    string mime;
    
    return _mappings.TryGetValue(extension, out mime) ? mime : "application/octet-stream";
}