PublicShow sourcemimetype.pl -- Determine mime-type for a file

Simple library to guess the mime-type from the extension of a file. As various applications need to do this type ofinferencing it seems worthwhile to place this functionality in an extensible library.

To be done
- Consider content handling (using the Unix file command)
- Allow parameters? (e.g. text/html; charset=UTF-8)
Source file_mime_type(+FileName, -MimeType) is semidet
True when MimeType is the mime-type to be used for sending FileName. The default rules can be overridden and extended using the hook mime:mime_extension/2.
Arguments:
MimeType- is a compound term of the form Type/SubType.
 mime:mime_extension(+Ext, -MimeType) is semidet[multifile]
Hook that is called by file_mime_type/2 before the default table is examined.
Source file_content_type(+File:atom, -ContentType:atom) is det
Source file_content_type(+File:atom, ?MediaType, -ContentType:atom) is det
True if File should be served using ContentType: ContentType. It takes the following steps:
  1. Determine the media type using file_mime_type/2, unless already specified using file_content_type/3.
  2. Determine it is a text file using text_mimetype/1
  3. Use the charset from the Prolog flag default_charset

The behavior is controlled by several hooks and a flag.

 mime:charset(+File, +MediaType, -Charset) is semidet[multifile]
Hook that determines the Charset for File that has media type MediaType. This hook allows overruling file_content_type/2.
See also
- text_mimetype/1.