mime

Guided tour · Networking · pkg.go.dev →

MIME types: look up by extension, parse Content-Type parameters, and encode/decode RFC 2047 encoded-words.

Type lookup

TypeByExtension

fmt.Println(mime.TypeByExtension(".pdf"))   // application/pdf
fmt.Println(mime.TypeByExtension(".go"))    // text/plain; charset=utf-8

ExtensionsByType

exts, _ := mime.ExtensionsByType("image/jpeg")
fmt.Println(exts)   // [.jfif .jpe .jpeg .jpg]

AddExtensionType — register a custom mapping

mime.AddExtensionType(".myapp", "application/vnd.myapp+json")

Parsing Content-Type

ParseMediaType

mt, params, _ := mime.ParseMediaType("multipart/form-data; boundary=xyz")
fmt.Println(mt, params["boundary"])

FormatMediaType — build one back

s := mime.FormatMediaType("text/plain", map[string]string{"charset": "utf-8"})
// "text/plain; charset=utf-8"