/usr/local/lib/swipl/library/ext/http/http/mimetype.pl
All Application Manual Name SummaryHelp

  • http
    • http
      • http_unix_daemon.pl
      • thread_httpd.pl
      • http_wrapper.pl
      • http_header.pl -- Handling HTTP headers
      • http_stream.pl
      • http_exception.pl
      • http_path.pl
      • http_dispatch.pl
      • http_host.pl
      • http_json.pl
      • http_client.pl
      • json.pl
      • http_open.pl
      • http_parameters.pl
      • http_multipart_plugin.pl
      • http_hook.pl
      • html_write.pl
      • html_quasiquotations.pl
      • html_decl.pl -- HTML emitter analysis and IDE support
      • js_write.pl
      • js_grammar.pl
      • http_server_files.pl
      • hub.pl
      • websocket.pl
      • http_session.pl
      • http_cors.pl
      • mimetype.pl -- Determine mime-type for a file
        • mime_extension/2
        • charset/3
        • file_mime_type/2
        • file_content_type/2
        • file_content_type/3
      • html_head.pl
      • term_html.pl
      • http_dyn_workers.pl
      • mimepack.pl -- Create a MIME message
 file_content_type(+File:atom, -ContentType:atom) is det
 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:mime_extension/2 defines the media type
  • text_mimetype/1 defines the media type is text
  • mime:charset/3 derives the charset for a file with a given media type, if the media type is text according to text_mimetype/1.
  • If text_mimetype/1 succeeds and mime:charset/3 fails, the flag default_charset defines the charset unless it is set to -. The flag set by default to UTF-8 if the Prolog flag encoding is set to utf8.