[Zope] Use MimeTypesRegistry in a plone product

Florent Guillaume fg at nuxeo.com
Wed Nov 17 13:01:47 EST 2004


In article <4199B4D3.3070706 at meteo.fr> you write:
> 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 ?
> 

This is bug 1344: http://collector.zope.org/Zope/1344

Florent



> 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
> 
> 
> 
> _______________________________________________
> Zope maillist  -  Zope at zope.org
> http://mail.zope.org/mailman/listinfo/zope
> **   No cross posts or HTML encoding!  **
> (Related lists - 
>  http://mail.zope.org/mailman/listinfo/zope-announce
>  http://mail.zope.org/mailman/listinfo/zope-dev )
> 


-- 
Florent Guillaume, Nuxeo (Paris, France)   CTO, Director of R&D
+33 1 40 33 71 59   http://nuxeo.com   fg at nuxeo.com


More information about the Zope mailing list