Skip to main content

A file content type for gov usecases

Project description


This is a file content for plone which provides some useful functions, such as:

  • Write downloader-name in history (ftw.journal)
  • Image preview
  • New FileField (stores more information in the RESPONSE header)


  • Add ftw.file to your buildout configuration
eggs =
  • Run buildout
  • Install ftw.file in portal_setup

Use ftw.file in TinyMCE

  • Make sure File is addable on the Type you use TinyMCE.
<object name="Meeting Item">
    <property name="allowed_content_types">
        <element value="File" />
  • Configure TinyMCE to create ftw.file Files with uploaded images. tinymce.xml:
  <imageobjects purge="True">
    <element value="File"/>


1.16.0 (2018-10-16)

  • Protect the edit form tab (schemata) for the expiration date and effective date with a separate permission. [mbaechtold]

1.15.0 (2018-03-14)

  • Drop support for Plone 4.2. [mbaechtold]
  • Prevent exception upon HEAD requests to the download view of a file. [mbaechtold]

1.14.0 (2017-11-16)

  • A new registry record can be used to prevent redirects to the download view of the file. [mbaechtold]
  • Rewrite download redirection tests using ftw.testbrowser, drop dependency on ftw.testing[splinter]. [lgraf]

1.13.0 (2017-05-15)

  • Added option to download file with inline content-disposition header. [lknoepfel]
  • A new option on the file can be used to protect a file. Protected files cannot be deleted by anyone until the option is unchecked. [mbaechtold]

1.12.0 (2016-11-24)

  • Record ftw.activity event when file downloaded. [jone]
  • Eliminate bad security declarations through interface. [jone]
  • Simplify schema inheritance. [jone]
  • Fix security declarations for getOriginFilename, is_image and getField. [jone]

1.11.5 (2016-07-19)

  • documentDate is now required. [elioschmutz]
  • Set batch size to 10. 50 is imho way to mutch, event 20 makes me scrolling 3 down. So 10 is imho OK. No? let’s fight… or someone implements a configurable number. [mathias.leimgruber]
  • Added pagination for journal. [lknoepfel]
  • Allow SiteAdministrator to add files. [tschanzt]

1.11.4 (2016-01-27)

  • The origin filename must not contain “/”. Otherwise a 404 will occur when the user tries to download the file. [mbaechtold]
  • Reload page if drag&drop upload has failed. [elioschmutz]

1.11.3 (2016-01-05)

  • Fix journal action translation for files [elioschmutz]
  • Fix drag’n’drop for files in Firefox. [Kevin Bieri]
  • Fix regression when trying to link files in TinyMCE. The problem was that only images were linkable. [jone]
  • Fix tests for new colorbox version. [tschanzt]

1.11.2 (2015-09-10)

  • Details view: refactor template binding for easeier subclassing. By moving the template binding to python code, subclasses can still render the default template conditionally. [jone]

1.11.1 (2015-09-09)

  • Fix jsondetails function, so it doesn’t crash when not finding scales. [tschanzt]

1.11.0 (2015-09-08)

  • Remove icon effect when replacing file. [jone]

  • Add adjustments to integrate bumblebee
    • Trigger event dndUploadViewUpdated if drag&drop is finished
    • Trigger ObjectEditedEvent from Products.Archetypes instead zope. lifecycleevent after quickupload
    • Register a resource-directory: ftw.file.resources
    • Create a FileMetadata utility


  • Fix Outputfilter, so it does work with scaled images. [tschanzt]

  • Integrate ftw.file images with TinyMCE. [lknoepfel]

  • Only load ftw.activity 1.x representation if ftw.activity 1.x is installed. [mathias.leimgruber]

  • Show a hint about the imminent file replacement in the dropzone overlay. [mbaechtold]

  • Make sure object modified is fired on quickupload. [lknoepfel]

  • Check for file type before dragging [Kevin Bieri]

1.10.0 (2014-12-16)

  • The file can be replaced with drag’n’drop (modern browsers only). [mbaechtold]

1.9.0 (2014-09-15)

  • ftw.activity integration: display preview image in activity stream. [jone]
  • Use ftw.profilehook instead of custom import steps (setuphandlers). [jone]

1.8.2 (2014-08-07)

  • When replacing the file, use the new filename given by the file. [lknoepfel]
  • Catch OverflowError for unkown PSD formats. [jone]
  • Don’t journalize when our user has no id. [tschanzt]

1.8.1 (2014-02-10)

  • Improve file download implementation by using a stream iterator and supporting range and if-modified-since requests. [buchi]
  • Make download view use our file download implementation. [buchi]

1.8 (2013-12-23)

  • Add editable filename functionality. The File-Schema is extended with a new StringField: originFilename. You can set a new filename without touching its extension. [elioschmutz]
  • Use ftw.colorbox for ftw.file overlay. [tschanzt]
  • Use PIL itself to detect images. [tschanzt]
  • Remove percent signs from download URL to fix problems in combination with Apache mod_rewrite. [buchi]

1.7.4 (2013-11-28)

  • Require ftw.upgrade >= 1.4.0 required by upgrade 1514. [jone]
  • Add upgradestep to recalculate wrong contenttypes. [tschanzt]

1.7.3 (2013-11-04)

  • Customize getIcon method. Search MimetypeRegistry before using iconmaps. [tschanzt]

1.7.2 (2013-10-16)

  • Add French translations. [tschanzt]

1.7.1 (2013-07-19)

  • Fix regression in download redirect with unicode filenames. [jone]

1.7.0 (2013-07-18)

  • Drop Plone 4.1 support. [jone]
  • File download: redirect to URL containing filename. This allows us to easily track downloads in statistics tools. [jone]
  • Redirect users without any modifying permissions (without editable border) to the download when not hitting a specific view. Also add File back to allowAnonymousViewAbout for making sure that /view is added in the navigation. [jone]

1.6.4 (2013-06-04)

  • Fix Upgradestep. [tschanzt]

1.6.3 (2013-05-31)

  • Add additional Schemata for removal since it was renamed. [tschanzt]
  • Add permission to edit advanced fields. [tschanzt]

1.6.2 (2013-05-17)

  • Hide author in file view if anonymous and allowAnonymousViewAbout is False. [Julian Infanger]

1.6.1 (2013-04-17)

  • Lawgiver support: map permissions. [jone]

1.6 (2013-01-21)

  • Drop Plone 4.0 support. [jone]
  • Hide view action for file. [Julian Infanger]

1.5 (2012-10-16)

  • Add missing dependency in [tschanzt]
  • use new document_date instead of effectiveDate. [tschanzt]

1.4.12 (2012-05-09)

  • Show time too on contenthostory viewlet. [mathias.leimgruber]

1.4.11 (2012-05-01)

  • Readded i18n:translate for content history viewlet action. [mathias.leimgruber]

1.4.10 (2012-04-30)

  • Fixed filename in response header for download. [Julian Infanger]

1.4.9 (2012-03-12)

  • Table head should be in thead, body in tbody. [Julian Infanger]

1.4.8 (2012-03-05)

  • Added plone default classes to tables. [Julian Infanger]

1.4.7 (2011-12-21)

  • The image preview, should no be squarish. [mathias.leimgruber]

1.4.6 (2011-12-21)

  • Fixed (include *.rst) [mathias.leimgruber]

1.4.5 (2011-12-21)

  • add test for is_image method in FileView [eschmutz]
  • fix: error when uploading a not scalable image mimetype (i.e. .dwg) we now check for allowed mimetypes to fix the error [eschmutz]

1.4.4 (2011-08-22)

1.4.3 (unreleased)

  • created imagepreview in file_view [ttschanz]
  • Added registry.xml for user_ids field. [mathias.leimgruber]
  • Added setFilename() method. [Thomas Buchberger]


  • First move effectiveDate field to default schemata, then change write permissions on all other fields (except default schemata) [31.05.2011, mathias.leimgruber]


  • Do not show specific users in Journal [16.02.2011, ttschanz]


  • Show Journal to members with Reader-role. [mathias.leimgruber]


  • Link to author’s site [mathias.leimgruber]
  • Removed styles, this should be done by theme [mathias.leimgruber]
  • Some translations / Added default_method to effectiveDate. [mathias.leimgruber]




  • Initial release

Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
ftw.file-1.16.0.tar.gz (143.5 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page