xref: /unit/test/python/upload/wsgi.py (revision 1356:462458cb73c1)
1from tempfile import TemporaryFile
2import os, cgi
3
4def read(environ):
5    length = int(environ.get('CONTENT_LENGTH', 0))
6
7    body = TemporaryFile(mode='w+b')
8    body.write(bytes(environ['wsgi.input'].read(length)))
9    body.seek(0)
10
11    environ['wsgi.input'] = body
12    return body
13
14def application(environ, start_response):
15    file = read(environ)
16
17    form = cgi.FieldStorage(fp=file, environ=environ, keep_blank_values=True)
18
19    filename = form['file'].filename
20    data = filename.encode() + form['file'].file.read()
21
22    start_response('200 OK', [
23        ('Content-Type', 'text/plain'),
24        ('Content-Length', str(len(data))),
25    ])
26
27    return data
28