目录
1.服务器主文件
2.index.html
3.上传界面(下载界面已经囊括在服务器主文件里了)
4.投屏界面
5.进入高级设置
6.css和js
7.最后
1.服务器主文件
本人使用的是python3.11.1,其他版本尚未测试。
此处用了不少库,功能都写在后面了,自行安装即可。
from bottle import *#服务器 from os import *#后面需要使用绝对路径 import socket#获取IP import bottle import random#生成随机数 import qrcode#生成二维码 import pyautogui#用于投屏 import threading#多线程
建议不要省略import bottle,因为可能会导致bottle库的run()和init中的run()重名而报错。
下面是服务器的全部代码
服务器.py
from bottle import *#服务器 from os import *#后面需要使用绝对路径 import socket#获取IP import bottle import random#生成随机数 import qrcode#生成二维码 import pyautogui#用于投屏 import threading#多线程 hostname = socket.gethostname() ip = socket.gethostbyname(hostname) #这里是声明那几个文件夹 apath = path.abspath("./infile") bpath = path.abspath("./网盘") cpath = path.abspath("./背景图片") dpath = path.abspath("./temp") mainport = 8080 #上传下载功能的服务器端口 tpport = 8081 #投屏功能的服务器端口 #网盘密码的更改需要在infile文件夹下的index.html中更改 #投屏的帧数需要在infile文件夹下的tp.html中更改 @route("/") def home(): return static_file("index.html", apath) @route("/infile/
") def infiledown(name): return static_file(name, root=apath) @route("/backimg") def do_backimg(): imgs = listdir(cpath) img = imgs[random.randrange(0, len(imgs))] return static_file(img, root=cpath) @route("/file/ ") def do_download(name): return static_file(name, root=bpath, download=True) @route("/up") def uppage(): return static_file("up.html", apath) @route("/upload", method="POST") def do_upload(): upd = request.files.get("upload") upd.save(bpath, overwrite=True) return static_file("upend.html", root=apath) @route("/down") def downpage(): files = listdir(bpath) result = "" for file in files: result += """ """.format(name=file) return """ 下载 """+ result+ """高级 """ @route("/other") def dootherret(): return static_file("other.html", root=apath) @route("/yanzheng",method='post') def dootheryz(): reyz=request.forms.get("pwd") if int(reyz) == 123456: #此处为进入高级界面的密码(纯数字) return static_file('business.html',apath) else: return "Password error" @route("/shut",method="post") def doyxpy(): system('shutdown -s') @route("/tpbefore") def tpbefore(): return '进入投屏界面'.format(str(ip) + ":" + str(tpport) + "/tp") def f1(): @route("/tp") def dotp(): return static_file('tp.html',apath) @route("/upimg/<>") def doupimg(): im = pyautogui.screenshot() im.save(dpath + "/sss.png") return static_file('sss.png',dpath) bottle.run(host=ip, port=tpport, reloader=True) t1=threading.Thread(target=f1,args=("apath","dpath"),daemon=True) t1.start() img = qrcode.make(str(f"http://"+str(ip)+':'+str(mainport))) imgpath=dpath+"/1.png" img.save(imgpath) os.startfile(imgpath,"open") bottle.run(host=ip, port=mainport, reloader=True, debug=True)
在这里,我尝试使用了一些动画,可能配色不是很好,如果想的话可以改为自己喜欢的颜色
网盘 请输入登录密码:
up.html
upend.html