[Zope] Use MimeTypesRegistry in a plone product
Stéphane Peillon
stephane.peillon at meteo.fr
Tue Nov 16 03:05:39 EST 2004
Hello,
I try to use some functions of the mimetypes_registry class in a
python file (ExFile.py) in a product for zope 2.7.2 and plone 2.0.4 call
PloneExFile (to have ftp support)... But without success. How can I use
this function ?
If I do something like this :
/def PUT(self, REQUEST, RESPONSE):
"""
Handle HTTP / WebDAV / FTP PUT requests.
"""
self.dav__init(REQUEST, RESPONSE)
self.dav__simpleifhandler(REQUEST, RESPONSE, refresh=1)
file=REQUEST["BODY"]
mime_type=self.mimetypes_registry.classify(file,filename=self.id).mimetypes[0]
nom = self.id
dummyfile=DummyFileUpload(file,nom,mime_type)
self.attachFile(file=dummyfile,REQUEST=REQUEST)
# Change attributes
self.title = nom
# Reindex
self.reindexObject()
RESPONSE.setStatus(204)
return RESPONSE
/I have got this error log :/
2004-11-16T08:47:46 ERROR(200) SiteError
http://xxxxx:xx21/Zope/IGNet/Documentation/Exploitation/document.doc/PUT
Traceback (most recent call last):
File "D:\Zope\Zope-2.7.2-0\lib\python\ZPublisher\Publish.py", line
101, in publish
request, bind=1)
File "D:\Zope\Zope-2.7.2-0\lib\python\ZPublisher\mapply.py", line 88,
in mapply
if debug is not None: return debug(object,args,context)
File "D:\Zope\Zope-2.7.2-0\lib\python\ZPublisher\Publish.py", line 39,
in call_object
result=apply(object,args) # Type s<cr> to step into published object.
File "D:\Zope\Zope-2.7.2-0\lib\python\webdav\NullResource.py", line
126, in PUT
ob.PUT(REQUEST, RESPONSE)
File "E:\Zope-Instance\SG-IG\Products\PloneExFile\ExFile.py", line
220, in PUT
mime_type=self.mimetypes_registry.classify(file,filename=self.id).mimetypes[0]
AttributeError: mimetypes_registry
/
I do something like this :
/
def PUT(self, REQUEST, RESPONSE):
"""
Handle HTTP / WebDAV / FTP PUT requests.
"""
self.dav__init(REQUEST, RESPONSE)
self.dav__simpleifhandler(REQUEST, RESPONSE, refresh=1)
file = REQUEST["BODY"]
registry = getToolByName(self, 'mimetypes_registry')
name = self.id
mime_type = ""
name_temp = name.split(".")
ext = name_temp[len(name_temp)-1]
mt=registry.list_mimetypes()
for id in mt:
mtbis=registry.lookup(id)[0]
if ext in mtbis.extensions:
mime_type= mtbis
dummyfile=DummyFileUpload(file,name,mime_type)
self.attachFile(file=dummyfile,REQUEST=REQUEST)
# Change attributes
self.title = name
# Reindex
self.reindexObject()
RESPONSE.setStatus(204)
return RESPONSE/
I have got this error :
/2004-11-16T08:59:38 ERROR(200) SiteError
http:////xxxxx:xx21///Zope/IGNet/Documentation/Exploitation/Document.doc/PUT
Traceback (most recent call last):
File "D:\Zope\Zope-2.7.2-0\lib\python\ZPublisher\Publish.py", line
101, in publish
request, bind=1)
File "D:\Zope\Zope-2.7.2-0\lib\python\ZPublisher\mapply.py", line 88,
in mapply
if debug is not None: return debug(object,args,context)
File "D:\Zope\Zope-2.7.2-0\lib\python\ZPublisher\Publish.py", line 39,
in call_object
result=apply(object,args) # Type s<cr> to step into published object.
File "D:\Zope\Zope-2.7.2-0\lib\python\webdav\NullResource.py", line
126, in PUT
ob.PUT(REQUEST, RESPONSE)
File "E:\Zope-Instance\SG-IG\Products\PloneExFile\ExFile.py", line
220, in PUT
registry = getToolByName(self, 'mimetypes_registry')
File "E:\Zope-Instance\SG-IG\Products\CMFCore\utils.py", line 75, in
getToolByName
raise AttributeError, name
AttributeError: mimetypes_registry
/Thanks/
/Stephane Peillon
More information about the Zope
mailing list