python 文件服务器_简单http文件服务器 (Python)

#!/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,))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值