SOLVED Re: [Zope] including arbitrary files in zope products

Johan Carlsson johanc at easypublisher.com
Sat Sep 4 09:13:24 EDT 2004


Raja Subramanian wrote:

> Hi,
> 
> Johan Carlsson wrote:
> 
>>>Johan Carlsson wrote at 2004-9-3 08:55 +0200:
>>>
>>>>For Images you can use
>>>>
>>>
>>>>from Globals import ImageFile
>>>
>>>>file=ImageFile('www/image.gif', globals())
>>>
>>>Despite its name, you can use "ImageFile" for arbitrary files and not
>>>only for images.
>>
>>Provide it actually can guess the content_type.
> 
> 
> I'm running zope 2.6.4, python 2.2.3 on debian sarge.
> 
>     file = ImageFile('www/applet.jar', globals())
> 
> produced the following http headers -
> 
>     Content-Type: application/x-java-archive
> 
> For PDF files, it produced "application/pdf" and for MS Word documents
> it produces "application/msword".  ImageFile is pretty clever :-)

Yes. It looks it uses
from OFS.content_types import guess_content_type
which in turn uses Python mime_types module
which defines 120 or so mimetype2ext mappings.

I'm just one of those guys who prefers explicit from implicit :-)


>>I would subclass ImageFile and override the __init__ with an
>>extra content_type argument. But that's me :-)
> 
> 
> I found that on debian I can make ImageFile understand new content types
> simply by modifying /etc/mime.types.

Yeah, mimetypes seems to look for mime types in:
     "/etc/mime.types",
     "/usr/local/etc/httpd/conf/mime.types",
     "/usr/local/lib/netscape/mime.types",
     "/usr/local/etc/httpd/conf/mime.types",     # Apache 1.2
     "/usr/local/etc/mime.types",                # Apache 1.3

and there's also a mime.types in OFS.

Even though, in a Product I would rather not require the user to
configure mime.types just to install my prodct :-)


-- 
Johan Carlsson          Tel: + 46 8 31 24 94
Colliberty              Mob: + 46 70 558 25 24
Torsgatan 72            Email: johanc at easypublisher.com
SE-113 37 STOCKHOLM


More information about the Zope mailing list