from tempfile import TemporaryFile import os, cgi def read(environ): length = int(environ.get('CONTENT_LENGTH', 0)) body = TemporaryFile(mode='w+b') body.write(bytes(environ['wsgi.input'].read(length))) body.seek(0) environ['wsgi.input'] = body return body def application(environ, start_response): file = read(environ) form = cgi.FieldStorage(fp=file, environ=environ, keep_blank_values=True) filename = form['file'].filename data = filename.encode() + form['file'].file.read() start_response( '200 OK', [('Content-Type', 'text/plain'), ('Content-Length', str(len(data)))], ) return data