Thanks for your help Tino, 1) For clarity purpose here is the whole page template <html> <head> <title> Titre </title> </head> <body> <form action="py_test" enctype='multipart/form-data' method='post'> <input type="file" name="filename"> <br><br> <input type="submit" name="toto"> </form> </body> </html> 2) here is the python script "py_test" request=context.REQUEST context.my_external_function( original_id=request['filename'] ) #context.my_external_function( original_id=request.form.get('filename') ) #context.my_external_function( request['filename'] ) !!nb: the 2 commented lines do not change anything to the error message ... 3) my_external_function def my_external_function (self, original_id): pass Of course this external method is supposed to do much more. I hope to be able to create thumbnail (as an example seen in the zope book). But i have simplified it as much as possible to see where the problem was located. I'm sure i ll have other problems to create the thumbnails ... : - ) but the real problem at this time is to pass a picture to the exernal method ... Regards Ph. -----Original Message----- From: Tino Wildenhain [mailto:tino@wildenhain.de] Sent: lundi 11 octobre 2004 12:53 To: VIGNAUX Philippe Cc: zope@zope.org Subject: Re: [Zope] picture as parameter for an external method On Mon, 2004-10-11 at 11:58, VIGNAUX Philippe wrote:
Hi !
Is there a way to pass a picture (extension JPG) as a parameter of an external method. It seem to be the case as read on the internet but for me it doesnÿt work ! My zope config : Zope 2.6.4 (binary release, python 2.1, win32-x86), python 2.1.3, win32 This is the problem : 1) Iÿve got a page template where I can choose a picture thru a « file » object : <input type="file" name="filename">
Did you adjust enctype accordingly?
2) This page template calls a python scripts
Calls? The Template is target of the POST request too?
request=context.REQUEST context.my_external_function( original_id=request['filename'] ) #context.my_external_function( request['filename'] )
if you do it the right way[tm] (see the enctype you can borrow from any ZMI HTML source which has a file upload) request.form.get('filename') will give you a file object. (If you return from form of course)
3) my_external_function is defined in an appropiate module in the « Extensions » folder of my zope installation
def my_external_function (self, original_id):
pass
This is all?
PROBLEM : when i run the process i get an error :
exceptions.AssertionError
Sorry, a site error occurred.
Traceback (innermost last):
* Module ZPublisher.Publish, line 150, in publish_module * Module ZPublisher.Publish, line 106, in publish * Module Zope.App.startup, line 225, in abort * Module ZODB.Transaction, line 135, in abort * Module ZODB.Connection, line 256, in abort
When i configure the whole thing to pass a normal parameter (text), it works normally ; so obviously the problem is when trying to pass a picture.
This might be related to the enctype. Try it first I'd say. What is your external method supposed to do? Regards Tino ########################################### This message has been scanned by ICT - Africa Museum