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

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

报告相同问题?

悬赏问题

  • ¥15 MATLAB动图的问题
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名