[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