case "doc": return "application/msword";
case "dot": return "application/msword";
case "docx": return "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
case "dotx": return "application/vnd.openxmlformats-officedocument.wordprocessingml.template";
case "docm": return "application/vnd.ms-word.document.macroEnabled.12";
case "dotm": return "application/vnd.ms-word.template.macroEnabled.12";
case "xls": return "application/vnd.ms-excel";
case "xlt": return "application/vnd.ms-excel";
case "xla": return "application/vnd.ms-excel";
case "xlsx": return "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
case "xltx": return "application/vnd.openxmlformats-officedocument.spreadsheetml.template";
case "xlsm": return "application/vnd.ms-excel.sheet.macroEnabled.12";
case "xltm": return "application/vnd.ms-excel.template.macroEnabled.12";
case "xlam": return "application/vnd.ms-excel.addin.macroEnabled.12";
case "xlsb": return "application/vnd.ms-excel.sheet.binary.macroEnabled.12";
case "ppt": return "application/vnd.ms-powerpoint";
case "pot": return "application/vnd.ms-powerpoint";
case "pps": return "application/vnd.ms-powerpoint";
case "ppa": return "application/vnd.ms-powerpoint";
case "pptx": return "application/vnd.openxmlformats-officedocument.presentationml.presentation";
case "potx": return "application/vnd.openxmlformats-officedocument.presentationml.template";
case "ppsx": return "application/vnd.openxmlformats-officedocument.presentationml.slideshow";
case "ppam": return "application/vnd.ms-powerpoint.addin.macroEnabled.12";
case "pptm": return "application/vnd.ms-powerpoint.presentation.macroEnabled.12";
case "potm": return "application/vnd.ms-powerpoint.template.macroEnabled.12";
case "ppsm": return "application/vnd.ms-powerpoint.slideshow.macroEnabled.12";
case "mdb": return "application/vnd.ms-access";
func mimeTypeForPath(path: String) -> String {
let url = NSURL(fileURLWithPath: path)
let pathExtension = url.pathExtension
if let uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassFilenameExtension, pathExtension! as NSString, nil)?.takeRetainedValue() {
if let mimetype = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassMIMEType)?.takeRetainedValue() {
return mimetype as String
}
}
return "application/octet-stream"
}
9条答案
按热度按时间wqsoz72f1#
以下是HTTP内容流的正确Microsoft Office MIME类型:
有关更多详细信息,请查看此TechNet article和此blog post。
dsekswqp2#
这里是一个(几乎)完整的文件扩展名的MIME在JSON格式。
您可以执行以下示例:
MIME["ppt"]
、MIME["docx"]
等编辑:
根据 @Octo Poulos 的建议:
video/mp4
a0x5cqrl3#
或者,如果你在.NET v4.5或更高版本中工作,尝试使用
System.Web.MimeMapping.GetMimeMapping
(yourFileName)
来获取MIME类型,这比硬编码字符串要好得多。UPDATE:在.Net Core中,可以使用
FileExtensionContentTypeProvider.TryGetContentType()
实现相同的功能jfgube3f4#
这篇文章将探讨在不同的编程语言中获取MIME类型的各种方法,并将它们的CONS用一行描述作为标题。因此,请相应地使用它们,并选择适合您的方法。
例如,当用户可能提供.xls、.xlsx或.xlsm中的任何一个,而您不想编写代码测试扩展并为它们中的每一个提供MIME类型时,下面的代码特别有用。让系统来做这项工作。
巨蟒3
使用python-magic
使用内置mimeypes模块-将文件名Map到MimeTypes模块
JAVA 7语言
来源:Baeldung's blog on File MIME Types in Java
取决于操作系统
它将使用FileTypeDetector实现来探测MIME类型,并调用每个实现的probeContentType来解析该类型。因此,如果实现知道该文件,则返回内容类型。但是,如果没有发生这种情况,则调用系统默认的文件类型检测器。
使用输入流的前几个字符进行解析
使用内置的MIME类型表
它返回URLConnection的所有示例使用的MIME类型矩阵,然后用于解析输入文件类型。但是,对于URLConnection,MIME类型矩阵非常有限。
默认情况下,该类使用content-types.propertiesJRE_HOME/lib中的www.example.com文件。但是,我们可以通过使用content.types.user.table属性指定一个特定于用户的表来扩展它:
JavaScript语言
来源:FileReader API和Medium's article on using Magic Numbers in JavaScript to get Mime Types
解释使用FileReader API获取的幻数
当使用javaScript基于文件流获取MimeType时,最终结果如下所示。***打开嵌入式jsFiddle***查看并理解此方法。
额外好处:大多数MIME类型都可以访问它,您还可以在***getMimetype***函数中添加自定义MIME类型。此外,它还完全支持MS Office Files MIME类型。
在此示例中,计算文件的mime类型的步骤如下:
1.用户选择一个文件。
1.使用slice方法获取文件的前4个字节。
1.创建新的FileReader示例
1.使用FileReader读取作为数组缓冲区切片的4个字节。
1.由于数组缓冲区只是表示二进制缓冲区的一种通用方式,因此我们需要创建一个TypedArray,在本例中为Uint 8Array。
1.有了TypedArray,我们可以检索每个字节并将其转换为十六进制(通过使用toString(16))。
1.现在我们有了一种方法,通过阅读文件的前四个字节来获取幻数。最后一步是将其Map到一个真实的的mime类型。
浏览器支持(总体支持率超过95%,在所有现代浏览器中接近100%):
第一个
mnowg1ta5#
Android中填充Map列表mime类型的工作方法。
k2fxgqgv6#
如果有人想在C# switch语句中使用the answer of Dirk Vollmar:
7xllpg7q7#
快速4
o2g1uqev8#
要加载.docx文件,请执行以下操作:
wvyml7n59#
WPS电子表格: