gpt4 book ai didi

go - 如何在 Golang 中检测额外的 mime 类型

转载 作者:IT王子 更新时间:2023-10-29 00:54:07 25 4
gpt4 key购买 nike

net/http包中有http.DetectContentType([]byte)函数。但仅支持有限数量的类型。如何添加对docxdocxlsxlsxpptppsodtodsodp 文件不是按扩展名,而是按内容。据我所知,有一些问题,因为docx/xlsx/pptx/odp/odt 文件与 zip 文件 (50 4B 03 04) 具有相同的签名。

最佳答案

免责声明:我是 mimetype 的作者.

对于 3 年后遇到同样问题的任何人,现在基于内容的 mime 类型检测包如下:

  • filetype

    • 纯 go,没有 c 绑定(bind)
    • 可以扩展以检测新的 mime 类型
    • 对于以不止一种 MIME 类型传递的文件(例如:xlsx 和 docx 以 zip 传递)存在问题,因为它在映射中存储匹配的函数,因此它不能保证遍历的顺序
    • 检测到的 mime 类型数量有限
  • magicmime

    • 需要安装 libmagic-dev
    • 在这 3 个中,它检测到的 MIME 类型数量最多
    • 可以扩展,尽管更难...... man magic
    • libmagic 不是线程安全的
  • mimetype

    • 纯 go,没有 c 绑定(bind)
    • 检测到的 mime 类型数量高于 filetype
    • 是线程安全的
    • 可以扩展

关于go - 如何在 Golang 中检测额外的 mime 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29838185/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com