Index: src/zope/app/http/put.py =================================================================== --- src/zope/app/http/put.py (revision 30380) +++ src/zope/app/http/put.py (working copy) @@ -15,7 +15,7 @@ """ __docformat__ = 'restructuredtext' -from zope.component import queryAdapter +from zope.component import queryAdapter, queryMultiAdapter from zope.app.http.interfaces import INullResource from zope.app.filerepresentation.interfaces import IWriteFile from zope.app.filerepresentation.interfaces import IWriteDirectory, IFileFactory @@ -70,6 +70,9 @@ # Now try to get a custom factory for he container factory = queryAdapter(container, IFileFactory, ext) + if factory is None: + factory = queryMultiAdapter(container, request) + # Fall back to a non-custom one if factory is None: factory = IFileFactory(container) @@ -104,7 +107,9 @@ body = self.request.bodyFile file = self.context - adapter = IWriteFile(file) + adapter = queryMultiAdapter(file, request) + if adapter is None: + adapter = IWriteFile(file) # TODO: Need to add support for large files data = body.read()