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

如何在Golang中检测其他MIME类型
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
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:
-
- 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
-
- needs libmagic-dev installed
- can be extended, albeit harder...
man magic
-
- pure go, no c bindings
- can be extended to detect new mime types
- smaller set of detected mime types
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 -