Skip to main content

MIME type handling for Zope

Project description

Provide a registry of mimetypes, accessible via the mimetypes_registry tool.

Upgrade from older versions

If you want to use the updated mimetypes registry database from the version after 2.0.6 and you don’t have important customizations you need to keep, just delete the old mimetypes_registry tool from ZMI and import all steps from the MimetypesRegistry profile.

How to update the mimetypes registry from

  1. Download the latest release from freesdesktops org shared mime info project page.

  2. Unpack the tarball

  3. Copy the file to Products.MimetypesRegistry’s mime_types folder.

  4. Add a note to the change log CHANGES.rst.

  5. Push to a branch and create a pull request.



Mimetypes registry information from

Icons from:


3.0.0 (2023-04-19)

Breaking changes:

  • Drop python 2.7 support. [gforcada] (#1)


  • Update configuration files. [plone devs] (5cc689e5)

2.1.9 (2022-01-19)

Bug fixes:

  • Fix missing comma in install_requires. [maurits] (#21)

2.1.8 (2020-09-21)

Bug fixes:

  • Fixed invalid escape sequences. [maurits] (#3130)

2.1.7 (2020-07-17)

Bug fixes:

  • Fixed SyntaxWarning (“is” vs. “==”). [ajung] (#1)

2.1.6 (2020-04-23)

Bug fixes:

  • Minor packaging updates. (#1)

2.1.5 (2018-09-23)

New features:

  • Python 3 compatibility. [rnix]

2.1.4 (2018-06-04)

Bug fixes:

  • Don’t depend on ZODB version directly. Rely on Zope dependency

2.1.3 (2018-04-04)

Bug fixes:

  • Add Python 2 / 3 compatibility [pbauer]

2.1.2 (2018-02-05)

New features:

  • Add Python 2 / 3 compatibility [davilima6]

2.1.1 (2017-06-26)

Bug fixes:

  • Fix MimeTypeException deprecation warnings [ale-rt]

2.1 (2016-11-01)

New features:

  • Update file. Uses version 1.7 tagged at 2016-09-05. Downloaded tarball at [jensens]

  • Add font/woff2 to supplement type, since its not in SMI. [jensens]

  • Move icons from skins folder to a browser resourceDirectory nameed “mimetype.icons”. Adopt guess_icon_path to return the new location. [jensens]

Bug fixes:

  • Cleanup: isort, autopep8, utf8 headers, manual cleanup, security decorators. [jensens]

  • Remove outdated and unused (whole plone core) STRING_TYPES declaration from [jensens]

2.0.10 (2016-08-09)

Bug fixes:

  • Use zope.interface decorator. [gforcada]

2.0.9 (2016-05-26)


  • In guess_encoding fall back to utf-8 instead of trying to read a portal property or the registry. [esteele]

2.0.8 (2015-06-29)

  • Use doc icon for docx, xls for xlsx, ppt for pptx [gotcha]

2.0.7 (2015-03-21)

  • Update file from This should fix outdated mimetype recognition like .ogg being application/ogg rather than audio/ogg or docx being application/zip. [thet]

  • Upgrade test infrastructure to plone.testing. [tomgross]

2.0.6 (2014-09-07)

2.0.5 (2013-08-13)

  • Add missing module security declarations.

2.0.4 (2013-01-13)

  • Nothing changed yet.

2.0.3 (2011-08-23)

2.0.2 (2011-05-12)

2.0.1 (2010-07-15)

  • Removed the invalid text/python-source mime type declaration and replaced it with the valid but unofficial text/x-python. [hannosch]

2.0 (2010-07-01)

  • Updated icons to a more modern set from Tango and Plone. [limi]

2.0b1 (2009-12-27)

  • Use standard logging instead of relying on Archetypes helpers. [hannosch]

  • Removed BBB code for zope.contenttype. [hannosch]

2.0a1 (2009-11-13)

  • Avoid acquiring mimetypes_registry and call it via a proper API. [hannosch]

  • Avoid acquiring portal_properties and call it via a proper API. [hannosch]

  • Cleaned up package metadata and general code. [hannosch]

  • Declare package dependencies and fixed deprecation warnings for use of Globals. [hannosch]

  • Purged old Zope 2 Interface interfaces for Zope 2.12 compatibility. Consider branching before this revision if release required before Plone 4. [elro]


  • Nothing

1.6.3 (2009-05-16)

  • Fix bug due to removed version.txt in 1.6.2. [wichert]

1.6.2 (2009-05-16)

  • Updated shared-mime-info from the shared-mime-info-0.51.tar.bz2 file. [sidnei]

  • Added Office 2007 mime types to the mime.types file, which was copied from Apache ages ago. The current version of Apache doesn’t contain those yet, nor does the shared-mime-info. Care must be taken when this file is updated again to make sure those mime types are not removed accidentally. [sidnei]

1.6.1 (2008-09-30)

  • Updated shared-mime-info from the shared-mime-info-0.23.tar.bz2 file. [hannosch]

  • Added metadata.xml file to the profile. [hannosch]

  • Changed fixUpSMIGlobs not to reinitialize the smi_mimetypes, when they are already initialized during tool creation. [hannosch]

  • Compile the 750KiB file to a binary format which gets loaded on Zope startup instead of reparsing the XML file each time. If the modification time of the source xml file changes, the binary file is automatically recreated. If the binary file cannot be created the xml file is reparsed each time as before. [hannosch]

  • Change some mimetypes returned by guessMime to match the mimetypes registered in mtr (from’s mime database). [csenger]

  • Ensure that lookup doesn’t return an empty tuple if asked with a mimetypestring returned by guessMime. Fixes [csenger]

  • Lookup by extensions (not glob) as submitted and retry it with lower case to catch filenames like ‘file.TXT’ [csenger]

1.6.0 (2007-08-16)

  • Nothing

1.6.0-rc2 (2007-07-27)

  • Updated componentregisty.xml to new style. [hannosch]

1.6.0-rc1 (2007-07-04)

  • Do not modify the portal_skins tool configuration [wichert]

1.6.0-b5 (2007-05-05)

  • Fix signature of fixUpSMIGlobs. [wichert]

1.6.0-b4 (2007-04-28)

  • Go back to using getToolByName for CMF tools. [nouri]

1.6.0-b3 (2007-03-20)

  • Removed tests/ and tests/ as they have outlived their usefulness. To run tests use Zope’s testrunner: ./bin/zopectl test –nowarn -s Products.MimetypesRegistry [stefan]

1.6.0-b2 (2007-03-05)

  • Use new cmf:registerDirectory zcml directive and removed corresponding code from the initialize method. [hannosch]

1.6.0-b1 (2007-02-27)

  • version bumped to 1.6, 1.5 is now for archetypes 1.4 bugfixing whatever happens with 1.6.x shouldt have effects on AT 1.4 [jensens]

1.5.0-a1 (2007-02-06)

  • Implemented PLIP 149 [tomster]

1.4.1-final (2006-09-15)

1.4.0-final (2006-06-16)

  • Use zope.contenttype in favor of if available. [hannosch]

1.4.0-beta2 (2006-05-12)

  • Use in favor of OFS.content_types if available. [stefan]

  • Spring-cleaning of tests infrastructure. [hannosch]

1.4.0-beta1 (2006-03-26)

1.4.0-alpha02 (2006-02-23)

  • ensured that the key gotten back from existed mark says the best way is to examine each key to ensure its valid but would be slower. [runyaga]

  • removed odd archetypes 1.3 style version checking [jensens]

  • Removed BBB code for CMFCorePermissions import location. [hannosch]

  • removed deprecation warning for ToolInit. [jensens]

  • skip backward compatibility to the times where MTR where part of PortalTransforms. [jensens]

1.3.8-final02 (2006-01-15)

  • nothing - the odd version checking needs a version change to stick to Archetypes version again. [yenzenz]

1.3.8-RC1 (2005-12-29)

  • Split yet another part of register() into a separate method. Cleanup smi_mimetypes initialize a little bit to to use the new method when adding new mimetypes to a already-registered entry. [dreamcatcher]

  • Include aliases in the list of mimetypes for a entry. Based on patch by Jean Jordaan [dreamcatcher]

  • Use a SAX-based parser instead of minidom to improve Zope startup time (by 17 seconds on my Pismo) and memory footprint. [dreamcatcher]

  • Augment known mimetypes with Windows mimetypes, if available. [dreamcatcher]

1.3.7-final01 (2005-10-11)

  • For the sake of sanity, include a ‘mime.types’ with MimetypesRegistry to minimize the platform-specific differences in mime detection when the python ‘mimetypes’ module is involved. [dreamcatcher]

  • globs from shared-mime-info were incorrectly mapped to ‘extensions’ and never really worked because the code tried to strip a leading dot, where the globs normally had *..

    The side-effect of this is that in unix, the Python ‘mimetypes’ module would happily read ‘/etc/mime.types’ and gracefully work (/etc/mime.types has most of the extensions of shared-mime-info but a few), where on Windows it would fail to detect mimetypes by extension. [dreamcatcher]

  • Added support for real globs, using fnmatch.translate and re.compile and a migration function that will be run from Plone 2.1.1 migration, with some tests specific for globs read from shared-mime-info. [dreamcatcher]

1.3.6-final01 (2005-08-30)

  • after one night sleeping over it I removed the yesterday added method. therefore I added according to some heuristics and OOo-Documentation some magic bytes to and made better tests. [yenzenz]

  • added a method to detect mimetypes of zipped files, here specially for OOo now all Openoffice files and zip files are detected properly. my simple tests are working: a OOo-Writer and a simpe zipfile are detected. [yenzenz]

  • updated file to latest CVS version rev 1.57 from [yenzenz]

1.3.5-final03 (2005-08-07)

  • nothing - the odd version checking needs a version change to stick to Archetypes version again. [yenzenz]

1.3.5-final02 (2005-08-01)

  • nothing again, need to stick to Archetypes version [yenzenz]

1.3.5-final (2005-07-17)

  • Added Five/Zope3 interface bridges and implements [tiran]

1.3.4-final (2005-07-06)

  • added icons for files [yenzenz]

1.3.3-final06 (2005-05-20)

  • nothing (I hate to write this. But the odd version checking needs it). [yenzenz]

1.3.3-final-02 (2005-03-25)

  • nothing

1.3.3-final (2005-03-05)

  • More a workaround than a fix for [ 1056252 ] Content type algorithm can be confused. [tiran]

  • workaround for [ 1068001 ] BaseUnit Encoding Error: macintosh [yenzenz]

  • In the case all else fails, try to resort to guess_content_type so that at least we don’t get ‘text/plain’ when the file is in fact a binary file. [dreamcatcher]

1.3.2-5 (2004-09-30)

  • nothing

1.3.2-4 (2004-09-30)

  • nothing

1.3.2-3 (2004-09-25)

  • nothing

1.3.2-2 (2004-09-17)

  • nothing

1.3.2-1 (2004-09-04)

  • Cleaned up major parts of PT by removing the python only implementation which was broken anyway [tiran]

1.3.1-1 (2004-08-16)

  • Added text/x-html-safe mime type for new transformation [tiran]

  • Don’t return acquisition wrapped mimetype items because they may lead to memory leaks. [tiran]

1.3.0-3 (2004-08-06)

  • Added text/wiki mime type [tiran]

  • Don’t log redefine warning if the current and the new object are equal [tiran]

  • initialize() MTR on __setstate__ aka when the MTR is loaded from ZODB. [tiran]

1.3.0-2 (2004-07-29)

  • Changed version to stick to Archetypes version. [tiran]

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Products.MimetypesRegistry-3.0.0.tar.gz (416.1 kB view hashes)

Uploaded source

Built Distribution

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page