[Zope] Using RESPONSE.setHeader to have a Method act like an Image
Phil Harris
phil@harris-family.info
Mon, 11 Mar 2002 14:55:42 -0000
do it in a Python script:
## Script (Python) "getImg"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=
##title=
##
req = container.REQUEST
res = req.RESPONSE
imgname=traverse_subpath[0]
res.setHeader('Content-type', 'image/jpeg')
therealimage=context[imgname]
context.dosomething()
return therealimage.data
Tested, by creating a dummy dosomething.
You basically need to use it like this:
http://localhosy:8080/getImg/tick.gif
where tick.gif is the image you want served, this gets put into the
traverse_subpath as entry 0, which is then used to get the realimage.
ps. This can be called from anywhere, it's just a url ;)
hth
Phil
----- Original Message -----
From: "Trevor Toenjes" <zope@toenjes.com>
To: <zope@zope.org>
Sent: Monday, March 11, 2002 2:31 PM
Subject: [Zope] Using RESPONSE.setHeader to have a Method act like an Image
> More info...setting the header works until I add additional methods.
> ----
> | <dtml-call "RESPONSE.setHeader('Content-type', 'image/jpeg')">
> | <dtml-var expr="therealimage.data">
> ----
> ...works
>
>
> ----
> | <dtml-call "RESPONSE.setHeader('Content-type', 'image/jpeg')">
> | <dtml-var expr="therealimage.data">
> |
> | <dtml-var dosomething>
> ----
> ...doesnt work properly. Returns the wrong Content-Length.
>
> -Trevor
>
>
> > -----Original Message-----
> > From: zope-admin@zope.org [mailto:zope-admin@zope.org]On Behalf Of
> > Trevor Toenjes
> > Sent: Monday, March 11, 2002 7:50 AM
> > To: zope@zope.org
> > Subject: [Zope] How a method only returns the data of an image
> >
> >
> > I need to make a method act like the clone of an image.
> > Without extending the Image class...(I would like to do this in DTML or
> > python-script)
> > I am simply trying to get a method to return the exact data of an Image
> > object, so it can be used in normal HTML <IMG
> > src="myimage.jpg?somevariable">. If the Image is a method, it can
execute
> > some logic based on the QUERY_STRING.
> >
> > example: DTML_Method "myimage.jpg"
> > # should look and smell like a JPG to the browser (but also execute some
> > logic without
> > # effecting the image header data)
> > ----
> > | <dtml-call "RESPONSE.setHeader('Content-type', 'image/jpeg')">
> > | <dtml-var expr="therealimage.data">
> > | <dtml-var somelogic>
> > ----
> > But this doesn't return the proper data or Content-Length:
> > "therealimage" is a standard Zope Image object.
> >
> > Any help is greatly appreciated...
> > -Trevor
> >
> >
> > _______________________________________________
> > Zope maillist - Zope@zope.org
> > http://lists.zope.org/mailman/listinfo/zope
> > ** No cross posts or HTML encoding! **
> > (Related lists -
> > http://lists.zope.org/mailman/listinfo/zope-announce
> > http://lists.zope.org/mailman/listinfo/zope-dev )
> >
>
>
> _______________________________________________
> Zope maillist - Zope@zope.org
> http://lists.zope.org/mailman/listinfo/zope
> ** No cross posts or HTML encoding! **
> (Related lists -
> http://lists.zope.org/mailman/listinfo/zope-announce
> http://lists.zope.org/mailman/listinfo/zope-dev )