Hi, I have an external method that gets an image from a directory (ie the image is *not* in the ZODB) and then adds the correct headers to display it to the browser. Trouble is, it don't work. The code is... def img(self, RESPONSE, src): import os img_dir = '/home/nnle/zope/Zope-1.11.0pr1-src/Images' img_name=os.path.join(img_dir, src) # Determine the ad type img_type=image_type(img_name) # Open ad file, using 'rb' to open it in binary mode! img_file=open(img_name, 'rb') img_data=img_file.read() img_file.close() # Set the content-type of the response RESPONSE.setHeader('content-type', img_type) return img_data The DTML that calls it is <img src='<!--#var expr="img('s1cb_p0000001.gif')"-->'> (normally the image name will not be there - it is got from another external method) and the traceback is <!-- [snipped] File /home/nnle/zope/Zope-1.11.0pr1-src/lib/python/DocumentTemplate/DT_Util .py, line 315, in eval (Object: img('s1cb_p0000001.gif')) File <string>, line 0, in ? File /home/nnle/zope/Zope-1.11.0pr1-src/lib/python/Products/ExternalMethod/ ExternalMethod.py, line 248, in __call__ (Object: img) (Info: (('s1cb_p0000001.gif',), {}, None)) File /home/nnle/zope/Zope-1.11.0pr1-src/lib/python/Products/ExternalMethod/ ExternalMethod.py, line 236, in __call__ (Object: img) (Info: (('s1cb_p0000001.gif',), {}, None)) TypeError: (see above) --> I've tried <img src='<!--#var expr="img(src='s1cb_p0000001.gif')"-->'>, and I get <!-- [snipped] /home/nnle/zope/Zope-1.11.0pr1-src/lib/python/Products/ExternalMethod/ ExternalMethod.py, line 248, in __call__ (Object: img) (Info: ((), {'src': 's1cb_p0000001.gif'}, None)) File /home/nnle/zope/Zope-1.11.0pr1-src/lib/python/Products/ExternalMethod/ ExternalMethod.py, line 236, in __call__ (Object: img) (Info: ((), {'src': 's1cb_p0000001.gif'}, None)) TypeError: (see above) --> anyone got any ideas? This is driving me batty. TIA Tone ------ Dr Tony McDonald, FMCC, Networked Learning Environments Project The Medical School, Newcastle University Tel: +44 191 222 5888 Fingerprint: 3450 876D FA41 B926 D3DD F8C3 F2D0 C3B9 8B38 18A2
Tony McDonald wrote:
Hi, I have an external method that gets an image from a directory (ie the image is *not* in the ZODB) and then adds the correct headers to display it to the browser.
Trouble is, it don't work.
Did you try putting the images in a directory accesible by the http server?
Tony McDonald wrote:
Hi, I have an external method that gets an image from a directory (ie the image is *not* in the ZODB) and then adds the correct headers to display it to the browser.
Trouble is, it don't work.
Did you try putting the images in a directory accesible by the http server?
Yes, the directory is accessible by the server. It looks like the request is failing before it gets to the point where it asks for the image. cheers tone ------ Dr Tony McDonald, FMCC, Networked Learning Environments Project The Medical School, Newcastle University Tel: +44 191 222 5888 Fingerprint: 3450 876D FA41 B926 D3DD F8C3 F2D0 C3B9 8B38 18A2
participants (2)
-
Jose G. Dinuncio F. -
Tony McDonald