首页  >  文章  >  后端开发  >  以下是一些标题选项,请记住问答格式: **简短而直接:** * **如何扩展 Go 中的 MIME 类型检测,使其超出默认的 http.DetectContentType 限制

以下是一些标题选项,请记住问答格式: **简短而直接:** * **如何扩展 Go 中的 MIME 类型检测,使其超出默认的 http.DetectContentType 限制

Barbara Streisand
Barbara Streisand原创
2024-10-26 06:14:02903浏览

Here are a few title options, keeping in mind the question-answer format:

**Short & Direct:**

* **How can I extend MIME type detection in Go beyond the default http.DetectContentType limitations?**
* **What are the best options for detecting additional

在 Go 中扩展 MIME 类型检测

在 Go 的 net/http 包中, http.DetectContentType([]byte) 函数提供了一种方法确定给定字节片的 MIME 类型。但是,此函数仅支持有限数量的类型。

要检测其他 mime 类型,特别是 docx、doc、xls、xlsx、ppt、pps、odt、ods 和 odp 文件,需要依赖取决于文件的内容而不是其扩展名。这是因为这些文件格式与 zip 文件共享相同的签名。

此问题的一种解决方案是使用专门的包进行基于内容的 MIME 类型检测。三个流行的选项包括:

  • 文件类型

    • 完全用 Go 编写
    • 可以扩展以检测新的 MIME types
    • 在映射中存储匹配的函数,可能导致遍历顺序不一致
    • 检测有限数量的 MIME 类型
  • magicmime

    • 依赖libmagic-dev库
    • 检测三个选项中最大数量的MIME类型
    • 扩展性比较复杂,需要了解 libmagic
    • Libmagic 不是线程安全的
  • mimetype

    • 完全用 Go 编写
    • 检测到的 MIME 类型多于文件类型
    • 线程安全
    • 支持可扩展性

以上是以下是一些标题选项,请记住问答格式: **简短而直接:** * **如何扩展 Go 中的 MIME 类型检测,使其超出默认的 http.DetectContentType 限制的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn