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() | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 |