如何从文件扩展名中获得MIME类型?
当前回答
我更新了一些剧本。以防有人需要
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>
其他回答
我已经编写了一个程序来获取和转换Apache mime。类型文件到c#字典<字符串,字符串>的关键文件扩展名。这里的。
实际的输出是这个文件(但是您可能希望获取它并再次运行它,以防Apache文件在我上次运行之后已经更新)。
public static Dictionary<string, string> MimeTypes = new Dictionary<string, string>
{
{ "123", "application/vnd.lotus-1-2-3" },
{ "3dml", "text/vnd.in3d.3dml" },
{ "3g2", "video/3gpp2" },
{ "3gp", "video/3gpp" },
{ "7z", "application/x-7z-compressed" },
{ "aab", "application/x-authorware-bin" },
{ "aac", "audio/x-aac" },
{ "aam", "application/x-authorware-map" },
{ "aas", "application/x-authorware-seg" },
{ "abw", "application/x-abiword" },
...
你可以使用这个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;
}
我知道这个问题是c#的,我只是想用Javascript格式,因为我刚刚转换了塞缪尔的答案:
export const contentTypes = {
".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"
}
您不应该信任来自客户端的文件扩展名。总是检查文件的神奇数字。
使用filetpe讯问器与ASP。NET核心:
public static class FileTypeChecker
{
private static List<string> validVideoMimeTypes = new List<string> { "video/mp4", "video/quicktime" };
private static List<string> validImageMimeTypes = new List<string> { "image/png", "image/jpeg" };
public static bool IsValidVideo(IFormFile file)
{
return validVideoMimeTypes.Contains(GetFileMimeType(file));
}
public static bool IsValidImage(IFormFile file)
{
return validImageMimeTypes.Contains(GetFileMimeType(file));
}
private static string GetFileMimeType(IFormFile file)
{
// You should have checked for null and file length before reaching here
IFileTypeInterrogator interrogator = new FileTypeInterrogator.FileTypeInterrogator();
byte[] fileBytes;
using (var stream = new MemoryStream())
{
file.CopyTo(stream);
fileBytes = stream.ToArray();
}
FileTypeInfo fileTypeInfo = interrogator.DetectType(fileBytes);
return fileTypeInfo.MimeType.ToLower();
}
}
在你的控制器或服务内部:
public IActionResult UploadVideo([FromForm] UploadVideoVM model)
{
if (model.File.Length < minimumLength || model.File.Length > maximumLength)
{
// BadRequest => Size
}
else if (!FileTypeChecker.IsValidVideo(model.File))
{
// BadRequest => Type
}
else
{
// All good
}
return Ok();
}
要获得文件扩展名的MIME类型,请参考此文件。
由文件扩展名计算的mime类型不一定总是正确的。
让我们说,我可以保存一个文件的。png扩展名,但文件格式,我可以设置为“ImageFormat.jpeg”。
所以在这种情况下,你要计算的文件会给出不同的结果…这可能会导致文件比原始文件大。
如果你正在处理图像,那么你可以使用imagecodecInfo和ImageFormat。