[Zope] picture as parameter for an external method

VIGNAUX Philippe philippe.vignaux at africamuseum.be
Mon Oct 11 07:52:41 EDT 2004


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 at wildenhain.de]
Sent: lundi 11 octobre 2004 12:53
To: VIGNAUX Philippe
Cc: zope at 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



More information about the Zope mailing list