Saving files from post data via sys.stdin
James Stroud
jstroud at ucla.edu
Mon Apr 10 22:50:10 EDT 2006
ACB wrote:
> I am rewriting an existing PERL script I wrote several months ago. It is a
> script that is used as the action for a form containing several type="file"
> inputs. The script is run unbuffered and writes the data from sys.stdin to
> a file which is stat'ed by another script called asyncornously from
> javascript. In the end I am able to make a progress bar for file uploads
> via http.
>
> Anyway, I have printed sys.stdin to a file and looked at it afterward. This
> is what is looks like
> -----------------------------126591649570
> Content-Disposition: form-data; name="userid"
>
> myUserid
> -----------------------------126591649570
> Content-Disposition: form-data; name="ulimage"; filename="bc12.jpg"
> Content-Type: image/jpeg
>
> binary data of jpeg
> -----------------------------126591649570
> Content-Disposition: form-data; name="ulimage"; filename=""
> Content-Type: image/jpeg
>
> -----------------------------126591649570
> Content-Disposition: form-data; name="ulimage"; filename=""
> Content-Type: image/jpeg
>
>
> -----------------------------126591649570
> Content-Disposition: form-data; name="sessionid"
>
> mySessionid
>
> Normally, I use cgi.FieldStorage() and access the values via calls like
> form = cgi.FieldStorage()
> sessionid = form["sessionid"].value
>
> What is the best method for accessing the various variables and their
> respective values so I can save the files one at a time?
Maybe loop over form's keys...
form = cgi.FieldStorage()
for k in form.keys():
do_something_with(form, k)
> Is there some
> class that can take this input and make it easier to deal with?
A dictionary.
I need to
> save each of the ulimage values as individual images and gain access to the
> values of sessionid and userid.
>
> Thanks
> Amy
>
images = get_images_from_pickle_or_something()
form = cgi.FieldStorage()
if not images.has_key(form['ulimage']):
an_image = image_constructor(form['ulimage'])
images[form['ulimage']] = an_image
else:
an_image = images[form['ulimage']]
for k in form.keys():
do_something_with(an_image, form[k])
James
--
James Stroud
UCLA-DOE Institute for Genomics and Proteomics
Box 951570
Los Angeles, CA 90095
http://www.jamesstroud.com/
More information about the Python-list
mailing list