File upload from client application (non-form based upload)

S

stuart

Hi

I'm trying to write a Python script to receive and save a file on a web
server that has been POST'ed from a client application.

In essence, this is similar to handling a file upload from an HTML
form. However, I can't use:

form = cgi.FieldStorage()
fileitem = form['file']

since the file is not coming from a form, and hence I don't have a form
field called 'file'.

I have working server-side code in PHP to do this (error handling
removed):

$file = "./test.jpg";
$file_handle = fopen($file,"w");
$mydata = file_get_contents("php://input");
fwrite($file_handle, $mydata);
fclose($file_handle);

What I need is a Python equivalent of the the above PHP script. The
content-type in the POST header is currently set to
"application/octet-stream" which works fine with the php code above.

Any help, advise, pointers, sample code would be hugely welcome,

Many thanks in advance,

Stuart
 
G

Gabriel Genellina

At said:
I'm trying to write a Python script to receive and save a file on a web
server that has been POST'ed from a client application.

In essence, this is similar to handling a file upload from an HTML
form. However, I can't use:

form = cgi.FieldStorage()
fileitem = form['file']

since the file is not coming from a form, and hence I don't have a form
field called 'file'.

I have working server-side code in PHP to do this (error handling
removed):

$file = "./test.jpg";
$file_handle = fopen($file,"w");
$mydata = file_get_contents("php://input");
fwrite($file_handle, $mydata);
fclose($file_handle);

What I need is a Python equivalent of the the above PHP script. The
content-type in the POST header is currently set to
"application/octet-stream" which works fine with the php code above.

You got rather close... "file" is not an item, it's an attribute, a
file-like object already open:

form = cgi.FieldStorage()
fileitem = form.file
data = fileitem.read()


--
Gabriel Genellina
Softlab SRL

__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar
 

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

Forum statistics

Threads
473,731
Messages
2,569,432
Members
44,832
Latest member
GlennSmall

Latest Threads

Top