mimetypes.lua Version 1.0.0
This is just a quick Lua library designed to provide a nice, non-server-bound database of MIME types. Usage is simple:
local mimetypes = require 'mimetypes' mimetypes.guess "docs.txt" -- text/plain mimetypes.guess "word.doc" -- application/msword mimetypes.guess "init.lua" -- text/x-lua
Should you need your own MIME types, you can do this:
local mimedb = mimetypes.copy() mimedb.extensions["ext"] = "application/x-cool-type" mimetypes.guess("myfile.ext", mimedb) -- application/x-cool-type
If you want to make sure it works, run
lua test.lua (or use Shake).
mimetypes.copy([db]) - Copies the default MIME types database and returns
the copy. If you provide
db, it is copied instead of the default.
mimetypes.guess(filename[, db]) - Guesses the MIME type of the file named
filename. If a MIME type could not be ascertained, nil is returned. If you
db, it is used to look up the MIME type instead of the default
Each database is a table that contains two fields -
filenames is checked first, as it maps literal filenames
README) to MIME types.
If that doesn't work, the file's extension is taken and looked up in
extensions. (For example,
report.pdf would look up
The default database is immutable (and hidden), because it's shared between
everyone who calls
guess without arguments, and messing with it would be a
If you encounter any missing, inaccurate, or questionably assigned MIME types, file a bug (preferably including a diff) on the issue tracker at http://www.bitbucket.org/leafstorm/lua-mimetypes/, or e-mail me at firstname.lastname@example.org.