doucongmishang2385
2015-04-24 03:24
浏览 502
已采纳

如何在Golang中检测其他MIME类型

There are http.DetectContentType([]byte) function in net/http package. But only limited number of types are supported. How to add support of docx, doc, xls, xlsx, ppt, pps, odt, ods, odp files not by extension, but by the content. As far as I know, there are some problems, because docx/xlsx/pptx/odp/odt files has the same signature as the zip file (50 4B 03 04).

图片转代码服务由CSDN问答提供 功能建议

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

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

4条回答 默认 最新

  • dpgf42422 2018-09-10 22:28
    最佳回答

    Disclaimer: I'm the author of mimetype.

    For anyone having the same problem 3 years later, nowadays the packages for mime type detection based on the content are the following:

    • filetype

      • pure go, no c bindings
      • can be extented to detect new mime types
      • has issues with files which pass as more than one mime type (ex: xlsx and docx passing as zip) because it stores matching functions in a map, thus it does not guarantee the order of traversal
    • magicmime

      • needs libmagic-dev installed
      • can be extended, albeit harder... man magic
    • mimetype

      • pure go, no c bindings
      • can be extended to detect new mime types
      • smaller set of detected mime types
    评论
    解决 无用
    打赏 举报
查看更多回答(3条)

相关推荐 更多相似问题