首页 > 解决方案 > 如何根据 Go 中的名称猜测文件的类型和编码?

问题描述

我正在寻找一种快速的方法来猜测 Go 中文件的 mime 类型和编码,给定它的名称。在 Python 中,您可以执行以下简单操作:

import mimetypes
type, encoding = mimetypes.guess_type(file_name)

go有类似的东西吗?我看到了 mimetypes 包,但我认为它不能从文件名派生编码。

标签: go

解决方案


使用mime.TypeByExtension获取给定文件扩展名的 mime 类型:

fmt.Println(mime.TypeByExtension(".jpg"))  // prints image/jpeg

如果以完整文件名开头,请使用filepath.Ext获取扩展名并将该扩展名传递给上面的函数:

fmt.Println(mime.TypeByExtension(filepath.Ext("blah.gif")))  // prints image/gif

推荐阅读