如何获取本地文件的 MIMETYPE?

Posted

技术标签:

【中文标题】如何获取本地文件的 MIMETYPE?【英文标题】:How to get MIMETYPE of local file? 【发布时间】:2018-01-11 23:17:39 【问题描述】:

我下载了一些文件,比如word、ppt、excel。但我不知道他们的 MIMETYPE 和后缀。有什么方法可以获取这些文件的 MIMETYPE 吗?

【问题讨论】:

你有没有尝试任何代码? ***.com/questions/1363813/…的可能重复 How can you read a files MIME-type in objective-c的可能重复 但是我不知道它们的后缀,这种方式行不通。 Content-Type 是 zip,但它们是 Microsoft Office 文件。 【参考方案1】:

如果您不知道后缀,您将不得不查看文件内容。通常这会从寻找文件的前几个字节magic bytes 开始。您通常可以在此基础上限定文件的类型(尽管您显然无法确定,除非您验证整个文件)。

对于现代 Office 文档,它们应该符合 OOXML 并且前两个字节应该是 0x50 0x4b(即“PK”),是 zip 文件的指示符。

然后您可以解压缩它(例如使用ZipArchive)。

然后您可以解析 docProps/app.xml 或查看页面顶部带有链接的 Office Open XML 站点,了解如何分别解析文字处理、Excel 和演示文稿。

【讨论】:

以上是关于如何获取本地文件的 MIMETYPE?的主要内容,如果未能解决你的问题,请参考以下文章

Django加载本地json文件

获取文件的 MimeType(内容类型)

iOS开发之网络编程--获取文件的MIMEType

如何使用 axios 获取本地文件?

如何从设备获取或选择本地 GIF 文件

如何在python烧瓶中获取具有本地时区的模板文件的修改日期