Index | Files

package magic

import ""

Package magic implements MIME type sniffing of data based on the well-known "magic" number prefixes in the file.


Package Files



var VideoExtensions = map[string]bool{
    "m1v": true,
    "m2v": true,
    "m4v": true,

VideoExtensions are common video filename extensions that are not covered by mime.TypeByExtension.

func HasExtension Uses

func HasExtension(filename string, extensions map[string]bool) bool

HasExtension returns whether the file extension of filename is among extensions. It is a case-insensitive lookup, optimized for the ASCII case.

func MIMEType Uses

func MIMEType(hdr []byte) string

MIMEType returns the MIME type from the data in the provided header of the data. It returns the empty string if the MIME type can't be determined.

func MIMETypeByExtension Uses

func MIMETypeByExtension(ext string) string

MIMETypeByExtension calls mime.TypeByExtension, and removes optional parameters, to keep only the type and subtype.

func MIMETypeFromReader Uses

func MIMETypeFromReader(r io.Reader) (mime string, reader io.Reader)

MIMETypeFromReader takes a reader, sniffs the beginning of it, and returns the mime (if sniffed, else "") and a new reader that's the concatenation of the bytes sniffed and the remaining reader.

func MIMETypeFromReaderAt Uses

func MIMETypeFromReaderAt(ra io.ReaderAt) (mime string)

MIMETypeFromReader takes a ReaderAt, sniffs the beginning of it, and returns the MIME type if sniffed, else the empty string.

Package magic imports 7 packages (graph) and is imported by 74 packages. Updated 2018-01-16. Refresh now. Tools for package owners.