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