3
import httplib, mimetypes, sys
5
def post_multipart(host, uri, fields, files):
6
content_type, body = encode_multipart_formdata(fields,files)
7
h = httplib.HTTPConnection(host)
8
h.putrequest('POST', uri)
9
h.putheader('content-type', content_type)
10
h.putheader('content-length', str(len(body)))
13
response = h.getresponse()
14
return response.read()
16
def encode_multipart_formdata(fields, files):
17
BOUNDARY = '----------ThIs_Is_tHe_bouNdaRY_$'
20
for (key, value) in fields:
21
L.append('--' + BOUNDARY)
22
L.append('Content-Disposition: form-data; name="%s"' % key)
25
for (key, filename, value) in files:
26
L.append('--' + BOUNDARY)
27
L.append('Content-Disposition: form-data; name="%s"; filename="%s"' % (key, filename))
28
L.append('Content-Type: %s' % get_content_type(filename))
31
L.append('--' + BOUNDARY + '--')
34
content_type= 'multipart/form-data; boundary=%s' % BOUNDARY
35
return content_type, body
37
def get_content_type(filename):
38
return mimetypes.guess_type(filename)[0] or 'application/octet-stream'
40
upfile = 'popcon-data'
41
uploadname = 'popcondata'
42
val = sys.stdin.read()
44
data = ((uploadname,upfile,val),)
45
ret= post_multipart('popcon.ubuntulinux.org', '/popcon-submit.cgi', '' , data)
46
if not ret == 'Thanks!\n':
47
sys.stderr.write("%s\n" % ret)