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

如何在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).

  • 写回答

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条)

报告相同问题?