#!C:/Program Files/Python22/python.exe """ An HTTP PUT handler in Python cf. http://www.apacheweek.com/issues/put1 """ import os, sys, string, re, cgi def r(status, msg): print 'Content-Type: text/html\n' if status == 200: print 'OK

O.K.

'+msg+'
\n' elif status == 500: print 'Error

Error Publishing File

\n' print 'An error occurred publishing this file ('+msg+').\n' sys.exit(0) def run(env): if env['REQUEST_METHOD'] == 'GET': r(200, string.strip(__doc__)) elif env['REQUEST_METHOD'] != 'PUT': r(500, 'Request method != PUT') if 'PATH_TRANSLATED' in env.keys(): fn = env['PATH_TRANSLATED'] else: r(500, 'No PATH_TRANSLATED') if 'CONTENT_LENGTH' in env.keys(): cl = env['CONTENT_LENGTH'] else: r(500, 'Content-Length missing or zero ('+cl+')') try: f = open(fn, 'w'); f.write(sys.stdin.read()); f.close() except: reply(500, 'Cannot write to '+fn) r(200, 'Content accepted') if __name__=="__main__": run(os.environ)