[Zope] Re: ExtImage madness - upload fails from script (python)

Tim Hicks tim@sitefusion.co.uk
Fri, 18 Jan 2002 01:33:49 -0000


----- Original Message -----
From: <mac.gregor@gmx.de>
To: "Tim Hicks" <tim@sitefusion.co.uk>
Sent: Thursday, January 17, 2002 8:09 PM
Subject: Re: ExtImage madness - upload fails from script (python)


> Hi Tim,
>
> I think the problem is this:
>
> if len(request.form[photo].read()) == 0:
>   ...
> else:
>   ...
>   manage_addExtImage(file=request.form[photo], ...)
>
> the read() call in the if statement 'consumes' the data in the request
(see
> it as a stream). So when ExtImage tries to read the image data from the
> request the stream has already been read and is empty. That's why the
image size
> turns out to be 0 bytes.
>
> You could either try to seek the stream to it's beginning (something like
> request.form[photo].seek(0)) but I'm not sure if that works. Otherwise you
> could read from the request into a StringIO object, then test the size
(via
> seek(0, 2) and tell()) and then seek back to the start.

That was exactly the problem!  In fact, your idea about using .seek(0)
worked like a charm as well.  So, my code now looks like...

else:
  file = request.form[photo].seek(0)
  manage_addExtImage(file=file, ...)

Thank you *so* much, you've saved my bacon :-)))

tim