file upload cgi
parent
de67c3edc8
commit
ce1d03ce1c
@ -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}<br />".format(bytes, filename))
|
||||
print ("<a href="">upload another</a>")
|
||||
else:
|
||||
print ("""<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
</head>
|
||||
<body>
|
||||
<form method="post" action="" enctype="multipart/form-data">
|
||||
<input type="file" name="thefile" /><input type="submit" />
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
""")
|
Loading…
Reference in New Issue