diff --git a/software_objects/file-upload/upload.cgi b/software_objects/file-upload/upload.cgi new file mode 100644 index 0000000..50773e3 --- /dev/null +++ b/software_objects/file-upload/upload.cgi @@ -0,0 +1,50 @@ +#!/usr/bin/env python3 + +from __future__ import print_function +import cgitb; cgitb.enable() +import cgi, os + + +env = os.environ +method = os.environ.get("REQUEST_METHOD") + +print ("Content-type:text/html;charset=utf-8") +print () +# print "Hello", method +# cgi.print_environ() + +UPLOADS = "/var/www/uploads/" + +def upload (inputname, upload_dir): + form = cgi.FieldStorage() + if not form.has_key(inputname): return + fileitem = form[inputname] + if not fileitem.file: return + fp = os.path.join(upload_dir, fileitem.filename) + with open(fp, 'wb') as fout: + bytes = 0 + while 1: + chunk = fileitem.file.read(100000) + if not chunk: break + bytes += len(chunk) + fout.write(chunk) + return bytes, fileitem.filename + +if method == "POST": + result = upload("thefile", UPLOADS) + if result: + bytes, filename = result + print ("{0} bytes written to {1}
".format(bytes, filename)) + print ("upload another") +else: + print (""" + + + + +
+ +
+ + +""") \ No newline at end of file