[Zope] Strange error with Photo Product
Robert Rottermann
robert@redcor.ch
Tue, 16 Jul 2002 05:25:31 +0200
I *think* photos selection of engines is hardwired to be pil or imagemagick.
Robert
----- Original Message -----
From: "Dennis Allison" <allison@sumeru.stanford.EDU>
To: <allison@sumeru.stanford.EDU>; <dieter@handshake.de>
Cc: <rbickers@logicetc.om>; <zope@zope.org>
Sent: Tuesday, July 16, 2002 3:51 AM
Subject: Re: [Zope] Strange error with Photo Product
> >
> >Dennis Allison writes:
> > > ...
> > > container.manage_addProduct.manage_addPhoto(id,title,file,.. )
> > > ...
> > > Zope Error
> > > Zope has encountered an error while publishing this resource.
> > > Error Type: KeyError
> > > Error Value: the_file
> > >
> > > ...
> > >
> > > File /var/zope/lib/python/Products/PythonScripts/PythonScript.py,
line
> > > 302, in _exec
> > > (Object: photo_upload)
> > > (Info: ({'script': <PythonScript instance at 8b70a88>, 'context':
> > > <Folder instance at 8d91b60>, 'container': <Folder instance at
8d91b60>,
> > > 'traverse_subpath': []}, (), {}, None))
> > > File Script (Python), line 8, in photo_upload
> > > File /var/zope/lib/python/AccessControl/ZopeGuards.py, line 90, in
> > > guarded_getitem
> > > File /var/zope/lib/python/ZPublisher/HTTPRequest.py, line 847, in
> > > __getitem__
> > > KeyError: (see above) File
>
>
> >Apparently, your "file" in not a "ZPublisher.HTTPRequest.FileUpload"
> >instance. --Dieter
>
> That's what I would have guessed, but when I examine it on arrival to the
> form that contains the call
>
> container.manage_addProduct.manage_addPhoto(id,title,file,.. )
>
> it is of FileUpload type. Moreover it gets installed in the PhotoFolder
> correctly. The particular code is neither long nor complex. I've
reproduced
> it below.
>
> The form, a DTML-Method:
> ------------------------------------------------------------------------
>
> <dtml-var standard_html_header>
> <p>
> <form action="photo_upload" method="POST" enctype="multipart/form-data">
> <input type="file" name="the_file" size="30">
> <br>
> <input type=submit name=submit value="Upload Photo">
> </form>
> <p>
> <dtml-var standard_html_footer>
> ------------------------------------------------------------------------
>
>
> The handler, a Python Script:
> ------------------------------------------------------------------------
>
> request = container.REQUEST
> RESPONSE = request.RESPONSE
> # move to photofolder
> p = container.restrictedTraverse('Photos')
> if( not p ): raise AssertionError, 'No Place to store Photos'
> the_id = container.genUID()
> the_title = 'My Photo'
> the_file = request['the_file']
> p.manage_addProduct['Photo'].manage_addPhoto( the_id, the_title, the_file,
engine='PNG')
> request['RESPONSE'].redirect( request['URL'] )
>
> ------------------------------------------------------------------------
>
> Photos is a PhotoFolder instance, essentially a vanilla instance out
> of the box without much of anything set. genUID is a Python external
> method that produces a unique identifier. PNG is installed and functions
> appears to function properly.
>
> Any suggestions/pointer appreciate. This one's got me stumpped.
>
> -dra
>
>
>
> _______________________________________________
> 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 )
>