
On Jan 25, 2012, at 5:28 AM, Gerrat wrote:
Tristan Seligmann <mithrandi <at> mithrandi.net> writes:
On Tue, Jun 30, 2009 at 10:44 AM, Reza Lotun<rlotun <at> gmail.com> wrote:
To be safer, I do a request.content.getvalue() since content is a cStringIO object and you can never be sure if somewhere along the chain of processing someone hasn't done a .read and forgot to do a .seek(0,0).
You should probably do the seek/read instead, since I don't believe this is guaranteed to be a cStringIO; it might be an actual file on disk, or something else.
Thank You!!!
Every <stupid> example I've seen used "request.content.getvalue()" ...which fails miserably for me (possibly because I'm on 64bit windows - but cStringIO is available, so I'm not sure why it's not used). request.content.read() works wonderfully. The "getvalue" method looked familiar, but I couldn't recall where I'd seen it - only that *my* request.content doesn't have a getvalue method. It took quite a few searches before I stumbled on your comment here which gave me the correct solution.
Nothing to do with 64bit windows. twisted.web will switch to a file when the threshold of the upload goes above a certain size. request.content is a file-like object, not any particular implementation of that protocol. This really should be documented in http://twistedmatrix.com/documents/current/api/twisted.web.iweb.IRequest.htm... - it's a bug that it isn't. -glyph