版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jacke121/article/details/83106686
get方式:
http://www.cnblogs.com/shenshangzz/p/8318143.html
# coding=utf-8
#!/usr/bin/env python
#--coding:utf-8--
#python 简易 http server
from http.server import BaseHTTPRequestHandler, HTTPServer
from os import path
from urllib.parse import urlparse
# from BaseHTTPServer import BaseHTTPRequestHandler
import cgi
# MIME-TYPE
mimedic = [
('.html', 'text/html'),
('.htm', 'text/html'),
('.js', 'application/javascript'),
('.css', 'text/css'),
('.json', 'application/json'),
('.png', 'image/png'),
('.jpg', 'image/jpeg'),
('.gif', 'image/gif'),
('.txt', 'text/plain'),
('.avi', 'video/x-msvideo')]
class PostHandler(BaseHTTPRequestHandler):
# GET
def do_GET(self):
sendReply = False
print("get")
# querypath = urlparse(self.path)
# filepath, query = querypath.path, querypath.query
#
# if filepath.endswith('/'):
# filepath += 'index.html'
# filename, fileext = path.splitext(filepath)
# for e in mimedic:
# if e[0] == fileext:
# mimetype = e[1]
# sendReply = True
#
# if sendReply == True:
# try:
# with open(path.realpath(curdir + sep + filepath), 'rb') as f:
# content = f.read()
# self.send_response(200)
# self.send_header('Content-type', mimetype)
# self.end_headers()
# self.wfile.write(content)
# except IOError:
# self.send_error(404, 'File Not Found: %s' % self.path)
def do_POST(self):
print("post")
form = cgi.FieldStorage(
fp=self.rfile,
headers=self.headers,
environ={'REQUEST_METHOD': 'POST',
'CONTENT_TYPE': self.headers['Content-Type'],
}
)
self.send_response(200)
self.end_headers()
self.wfile.write('Client: %sn ' % str(self.client_address))
self.wfile.write('User-agent: %sn' % str(self.headers['user-agent']))
self.wfile.write('Path: %sn' % self.path)
self.wfile.write('Form data:n')
for field in form.keys():
field_item = form[field]
filename = field_item.filename
filevalue = field_item.value
filesize = len(filevalue) # 文件大小(字节)
# print len(filevalue)
# print (filename)
with open(filename.decode('utf-8'), 'wb') as f:
f.write(filevalue)
return
def StartServer():
sever = HTTPServer(("", 9999), PostHandler)
sever.serve_forever()
if __name__ == '__main__':
StartServer()