Saving files from post data via sys.stdin

A

ACB

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? Is there some
class that can take this input and make it easier to deal with? I need to
save each of the ulimage values as individual images and gain access to the
values of sessionid and userid.

Thanks
Amy
 
J

James Stroud

ACB said:
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/
 
A

ACB

form = cgi.FieldStorage()

for k in form.keys():
do_something_with(form, k)


A dictionary.

I need to


James,

Thanks for the reply, however... the problem I am having is that I need to
use the data via sys.stdin and not the cgi.FormStorage object because cgi
only takes the data after it has all been received.

So, I need a good way to parse the data in sys.stdin unless their is some
built-in way to do it.

Thanks
 
A

ACB

ACB said:
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? Is there some
class that can take this input and make it easier to deal with? I need to
save each of the ulimage values as individual images and gain access to
the values of sessionid and userid.

Thanks
Amy

Any further help is appreciated. : )
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,995
Messages
2,570,236
Members
46,821
Latest member
AleidaSchi

Latest Threads

Top