#!/usr/bin/python3
import sys
from http.server import BaseHTTPRequestHandler, HTTPServer, CGIHTTPRequestHandler
if __name__ == '__main__':
try:
handler = CGIHTTPRequestHandler
handler.cgi_directories = ['/cgi-bin', '/htbin']
port = int(sys.argv[1])
print('port is %d'% port)
server = HTTPServer(('', port), handler)
print('Welcome to my website !')
server.serve_forever()
except KeyboardInterrupt:
print ('^C received, shutting down server')
server.socket.close()
#### index.html ####
File Server要下载的文件:
要上传的文件:
#### download.py ####
#!/usr/bin/python3
import os
import sys
import cgi
form = cgi.FieldStorage()
filename = form.getvalue('filename')
dir_path = "/home/sxhlinux/data/"
target_path = dir_path + str(filename)
if os.path.exists(target_path) == True:
print ('Content-Type: application/octet-stream')
print ('Content-Disposition: attachment; filename = "%s"' % filename)
sys.stdout.flush()
fo = open(target_path, "rb")
sys.stdout.buffer.write(fo.read())
fo.close()
else:
print("""\
Content-type: text/html\n
File server%s doesn't exist in the server:
files in the server list below: """ % filename)
for line in os.popen("ls -lh ~/data/"):
name = line.strip().split(' ', 8)
if len(name) == 9:
print('''
%s
''' % (line, name[8]))print(' ')
#### upload.py ####
#!/usr/bin/python3
import cgi, os
form = cgi.FieldStorage()
item = form['filename']
if item.filename:
fn = os.path.basename(item.filename)
open('/home/sxhlinux/data/' + fn, 'wb').write(item.file.read())
msg = 'File ' + fn + ' upload successfully !'
else:
msg = 'no file is uploaded '
print("""\
Content-type: text/html\n
Hello world名称: %s
""" % (msg,))