Apache & mod_python: I don't receive anything with POST method

Graham Dumpleton Graham.Dumpleton at gmail.com
Wed Nov 26 23:22:06 CET 2008


On Nov 27, 12:21 am, tengounpl... at gmail.com wrote:
> Hi,
>
> I'm using a simple form to make possible the users of our site upload
> files.
>
> <html>
>     <head><meta http-equiv="Content-Type" content="text/html;
> charset=iso-8859-1"></head>
>     <body>
>     <form method="post" enctype="multipart/form-data" action="/ws/
> upload.py"/>
>         <input name="upfile" type="file" size="50"/><br>
>         <input type="submit" value="send"/>
>     </form>
>     </body>
> </html>
>
> The "upload.py" looks like this:
>
> from mod_python import apache, util;
>
> def index(req):
>     form = util.FieldStorage(req, keep_blank_values=1)
>     try:
>         # form is empty here
>         # return form --> I get "{}"
>         ufile = form.get('upfile', None)
>
>         if not form.has_key('upfile'):
>             return ":( No 'upfile' key"
>
>         # some checks. I never get beyond here
>
>         ufile = form['upfile']
>         if ufile.file:
>             return ufile.file.name
>         else:
>             return ":( It's not a file"
>     except Exception, e:
>         return 'Fail: ' + str(e)
>
> I'm getting an empty 'form'. No 'upfile' key at all. I've tried to add
> some other text fields but the result is the same: empty. If I use GET
> method with text fields, it works properly.
>
> Currently I'm using:
> Apache 2.2.9 (initially I used Apache 2.2.3 too)
> mod_python 3.3.1 (initially I used mod_python 3.2.10 too)
> Python 2.5.2

Which is the correct result for the code you are using.

The problem is that you appear to be using mod_python.publisher which
does its own form handling before you are even getting a chance, thus
it is consuming the request content.

For how to handle forms in mod_python.publisher see:

http://webpython.codepoint.net/mod_python_publisher_forms

Graham



More information about the Python-list mailing list