var mimeTypes … var mimeTypesLower … var extensionsMu … var extensions … // setMimeTypes is used by initMime's non-test path, and by tests. func setMimeTypes(lowerExt, mixExt map[string]string) { … } var builtinTypesLower … var once … var ( testInitMime … osInitMime … ) func initMime() { … } // TypeByExtension returns the MIME type associated with the file extension ext. // The extension ext should begin with a leading dot, as in ".html". // When ext has no associated type, TypeByExtension returns "". // // Extensions are looked up first case-sensitively, then case-insensitively. // // The built-in table is small but on unix it is augmented by the local // system's MIME-info database or mime.types file(s) if available under one or // more of these names: // // /usr/local/share/mime/globs2 // /usr/share/mime/globs2 // /etc/mime.types // /etc/apache2/mime.types // /etc/apache/mime.types // // On Windows, MIME types are extracted from the registry. // // Text types have the charset parameter set to "utf-8" by default. func TypeByExtension(ext string) string { … } // ExtensionsByType returns the extensions known to be associated with the MIME // type typ. The returned extensions will each begin with a leading dot, as in // ".html". When typ has no associated extensions, ExtensionsByType returns an // nil slice. func ExtensionsByType(typ string) ([]string, error) { … } // AddExtensionType sets the MIME type associated with // the extension ext to typ. The extension should begin with // a leading dot, as in ".html". func AddExtensionType(ext, typ string) error { … } func setExtensionType(extension, mimeType string) error { … }