Marquee Mojolicious::Types - MIME types

TABLE OF CONTENTS

NAME

Mojolicious::Types - MIME types

SYNOPSIS

use Mojolicious::Types;

my $types = Mojolicious::Types->new;
$types->type(foo => 'text/foo');
say $types->type('foo');

DESCRIPTION

Mojolicious::Types manages MIME types for Mojolicious.

"3gp"     => "video/3gpp",
"a"       => "application/octet-stream",
"ai"      => "application/postscript",
"aif"     => "audio/x-aiff",
"aiff"    => "audio/x-aiff",
"asc"     => "application/pgp-signature",
"asf"     => "video/x-ms-asf",
"asm"     => "text/x-asm",
"asx"     => "video/x-ms-asf",
"atom"    => "application/atom+xml",
"au"      => "audio/basic",
"avi"     => "video/x-msvideo",
"bat"     => "application/x-msdownload",
"bin"     => "application/octet-stream",
"bmp"     => "image/bmp",
"bz2"     => "application/x-bzip2",
"c"       => "text/x-c",
"cab"     => "application/vnd.ms-cab-compressed",
"cc"      => "text/x-c",
"chm"     => "application/vnd.ms-htmlhelp",
"class"   => "application/octet-stream",
"com"     => "application/x-msdownload",
"conf"    => "text/plain",
"cpp"     => "text/x-c",
"crt"     => "application/x-x509-ca-cert",
"css"     => "text/css",
"csv"     => "text/csv",
"cxx"     => "text/x-c",
"deb"     => "application/x-debian-package",
"der"     => "application/x-x509-ca-cert",
"diff"    => "text/x-diff",
"djv"     => "image/vnd.djvu",
"djvu"    => "image/vnd.djvu",
"dll"     => "application/x-msdownload",
"dmg"     => "application/octet-stream",
"doc"     => "application/msword",
"dot"     => "application/msword",
"dtd"     => "application/xml-dtd",
"dvi"     => "application/x-dvi",
"ear"     => "application/java-archive",
"eml"     => "message/rfc822",
"eps"     => "application/postscript",
"exe"     => "application/x-msdownload",
"f"       => "text/x-fortran",
"f77"     => "text/x-fortran",
"f90"     => "text/x-fortran",
"flv"     => "video/x-flv",
"for"     => "text/x-fortran",
"gem"     => "application/octet-stream",
"gemspec" => "text/x-script.ruby",
"gif"     => "image/gif",
"gz"      => "application/x-gzip",
"h"       => "text/x-c",
"hh"      => "text/x-c",
"htm"     => "text/html",
"html"    => "text/html",
"ico"     => "image/vnd.microsoft.icon",
"ics"     => "text/calendar",
"ifb"     => "text/calendar",
"iso"     => "application/octet-stream",
"jar"     => "application/java-archive",
"java"    => "text/x-java-source",
"jnlp"    => "application/x-java-jnlp-file",
"jpeg"    => "image/jpeg",
"jpg"     => "image/jpeg",
"js"      => "application/javascript",
"json"    => "application/json",
"log"     => "text/plain",
"m3u"     => "audio/x-mpegurl",
"m4v"     => "video/mp4",
"man"     => "text/troff",
"manifest"=> "text/cache-manifest",
"mathml"  => "application/mathml+xml",
"mbox"    => "application/mbox",
"mdoc"    => "text/troff",
"me"      => "text/troff",
"mid"     => "audio/midi",
"midi"    => "audio/midi",
"mime"    => "message/rfc822",
"mml"     => "application/mathml+xml",
"mng"     => "video/x-mng",
"mov"     => "video/quicktime",
"mp3"     => "audio/mpeg",
"mp4"     => "video/mp4",
"mp4v"    => "video/mp4",
"mpeg"    => "video/mpeg",
"mpg"     => "video/mpeg",
"ms"      => "text/troff",
"msi"     => "application/x-msdownload",
"odp"     => "application/vnd.oasis.opendocument.presentation",
"ods"     => "application/vnd.oasis.opendocument.spreadsheet",
"odt"     => "application/vnd.oasis.opendocument.text",
"ogg"     => "application/ogg",
"ogv"     => "video/ogg",
"p"       => "text/x-pascal",
"pas"     => "text/x-pascal",
"pbm"     => "image/x-portable-bitmap",
"pdf"     => "application/pdf",
"pem"     => "application/x-x509-ca-cert",
"pgm"     => "image/x-portable-graymap",
"pgp"     => "application/pgp-encrypted",
"pkg"     => "application/octet-stream",
"pl"      => "text/x-script.perl",
"pm"      => "text/x-script.perl-module",
"png"     => "image/png",
"pnm"     => "image/x-portable-anymap",
"ppm"     => "image/x-portable-pixmap",
"pps"     => "application/vnd.ms-powerpoint",
"ppt"     => "application/vnd.ms-powerpoint",
"ps"      => "application/postscript",
"psd"     => "image/vnd.adobe.photoshop",
"py"      => "text/x-script.python",
"qt"      => "video/quicktime",
"ra"      => "audio/x-pn-realaudio",
"rake"    => "text/x-script.ruby",
"ram"     => "audio/x-pn-realaudio",
"rar"     => "application/x-rar-compressed",
"rb"      => "text/x-script.ruby",
"rdf"     => "application/rdf+xml",
"roff"    => "text/troff",
"rpm"     => "application/x-redhat-package-manager",
"rss"     => "application/rss+xml",
"rtf"     => "application/rtf",
"ru"      => "text/x-script.ruby",
"s"       => "text/x-asm",
"sgm"     => "text/sgml",
"sgml"    => "text/sgml",
"sh"      => "application/x-sh",
"sig"     => "application/pgp-signature",
"snd"     => "audio/basic",
"so"      => "application/octet-stream",
"svg"     => "image/svg+xml",
"svgz"    => "image/svg+xml",
"swf"     => "application/x-shockwave-flash",
"t"       => "text/troff",
"tar"     => "application/x-tar",
"tbz"     => "application/x-bzip-compressed-tar",
"tcl"     => "application/x-tcl",
"tex"     => "application/x-tex",
"texi"    => "application/x-texinfo",
"texinfo" => "application/x-texinfo",
"text"    => "text/plain",
"tif"     => "image/tiff",
"tiff"    => "image/tiff",
"torrent" => "application/x-bittorrent",
"tr"      => "text/troff",
"txt"     => "text/plain",
"vcf"     => "text/x-vcard",
"vcs"     => "text/x-vcalendar",
"vrml"    => "model/vrml",
"war"     => "application/java-archive",
"wav"     => "audio/x-wav",
"wma"     => "audio/x-ms-wma",
"wmv"     => "video/x-ms-wmv",
"wmx"     => "video/x-ms-wmx",
"wrl"     => "model/vrml",
"wsdl"    => "application/wsdl+xml",
"xbm"     => "image/x-xbitmap",
"xhtml"   => "application/xhtml+xml",
"xls"     => "application/vnd.ms-excel",
"xml"     => "application/xml",
"xpm"     => "image/x-xpixmap",
"xsl"     => "application/xml",
"xslt"    => "application/xslt+xml",
"yaml"    => "text/yaml",
"yml"     => "text/yaml",
"zip"     => "application/zip",

The most common ones are already defined.

ATTRIBUTES

Mojolicious::Types implements the following attributes.

types

my $map = $types->types;
$types  = $types->types({png => 'image/png'});

List of MIME types.

METHODS

Mojolicious::Types inherits all methods from Mojo::Base and implements the following ones.

detect

my $exts = $types->detect('application/json;q=9');
my $exts = $types->detect('text/html, application/json;q=9', 1);

Detect file extensions from Accept header value, prioritization of unspecific values that contain more than one MIME type is disabled by default.

# List detected extensions prioritized
say for @{$types->detect('application/json, text/xml;q=0.1', 1)};

type

my $type = $types->type('png');
$types   = $types->type(png => 'image/png');
$types   = $types->type(json => [qw(application/json text/x-json)]);

Get or set MIME types for file extension, alternatives are only used for detection.

type_by_path

Detect MIME type out of path name.

my $mime = $types->type_by_path('/path/to/file.css') # text/css

SEE ALSO

Mojolicious, Mojolicious::Guides, http://mojolicio.us.