You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
1.9 KiB
78 lines
1.9 KiB
#!/usr/bin/env python |
|
|
|
import cgi |
|
import cgitb; cgitb.enable() |
|
import os, sys |
|
|
|
def ctype(): |
|
print """Content-Type: text/html |
|
|
|
""" |
|
|
|
def head(): |
|
print """ |
|
<html> |
|
<head><title>Upload test.</title></head> |
|
<style> |
|
.value { background-color: #FFFFC0; } |
|
.hilite { background-color: #FFC0C0; } |
|
</style> |
|
<body> |
|
""" |
|
|
|
def tail(): |
|
print """ |
|
</body> |
|
</html> |
|
""" |
|
|
|
form = cgi.FieldStorage() |
|
|
|
def print_env(k, v, hilite=False): |
|
if hilite: |
|
print '<div><tt><strong class="hilite">%s</strong> = <span class="value">%s</span></tt></div>' % (k, v) |
|
else: |
|
print '<div><tt><strong>%s</strong> = <span class="value">%s</span></tt></div>' % (k, v) |
|
|
|
def print_file(k, v): |
|
print '<div><tt><strong>%s (%s)</strong> (File: %s):</div><pre class="value">%s</pre>' % (k, v.filename, v.type, v.value) |
|
|
|
def print_fs(k, v): |
|
print '<div><tt><strong>%s</strong> (FieldStorage: %s) = <span class="value">%s</span></tt></div>' % (k, v.type, v.value) |
|
|
|
def print_unk(k, v): |
|
print '<div><tt><strong>%s</strong> (Unknown: %s) = <span class="value">%s</span></tt></div>' % (k, v.type, v.value) |
|
|
|
def print_mfs(k, v): |
|
print '<div><tt><strong>%s</strong> (MiniFieldStorage: %s) = <span class="value">%s</span></tt></div>' % (k, v.type, v.value) |
|
|
|
def env(): |
|
print '<h1>Environment</h1>' |
|
for k, v in os.environ.items(): |
|
print_env(k, v, hilite = (k == 'REQUEST_METHOD') or (k == 'CONTENT_TYPE')) |
|
|
|
def act(): |
|
print '<h1>Form Fields</h1>' |
|
for k in form: |
|
v = form[k] |
|
if v.file and v.filename: |
|
print_file(k, v) |
|
elif isinstance(v, cgi.FieldStorage): |
|
print_fs(k, v) |
|
elif isinstance(v, cgi.MiniFieldStorage): |
|
print_mfs(k, v) |
|
else: |
|
print_unk(k, v) |
|
|
|
if (__name__ == "__main__"): |
|
ctype() |
|
if not 'inline' in form or form['inline'].value != 'yes': |
|
head() |
|
act() |
|
#env() |
|
if not 'inline' in form or form['inline'].value != 'yes': |
|
tail() |
|
|
|
|
|
|
|
|
|
|