python内网上传下载工具
本帖最后由 LiCan857 于 2024-6-21 15:55 编辑利用python的nicegui写了一个内网下载工具,支持上传和下载。
这样的工具很多,但是利用这个模块可以用很少的代码做一个比较好看的页面。
上传的文件会存在当前目录下生成一个upload文件夹中;下载则是读取upload文件夹。
首先下载模块
`pip install nicegui`
## 代码:
from nicegui import app, ui
import os
# 如果目录不存在,则创建
directory = f'./upload/'
if not os.path.exists(directory):
os.makedirs(directory)
app.add_static_files('/upload', 'upload')
with ui.row():
with ui.button(on_click=lambda: ui.open('/uploadfile')):
ui.label('上传')
ui.icon('upload').classes('rounded-full w-16 h-16 ml-4')
with ui.button(on_click=lambda: ui.open('/downloadfile')):
ui.label('下载')
ui.icon('download').classes('rounded-full w-16 h-16 ml-4')
def save_file(content, filename):
"""保存文件"""
try:
# 完整的文件路径
file_path = os.path.join(directory, filename)
with open(file_path, 'wb') as f:# 保存图片
f.write(content)
ui.notify(f'{filename} 保存成功', color='positive')
except Exception as e:
ui.notify(e)
def list_files_and_dirs(directory):
file_list = []
for root, dirs, files in os.walk(directory):
for name in files:
file_list.append(os.path.join(root, name))
return file_list
@ui.page('/uploadfile')
async def upload_page():
with ui.row():
with ui.button(on_click=lambda: ui.open('/')):
ui.icon('arrow_back')
ui.label('文件上传').classes('text-h5')
with ui.button(on_click=lambda: ui.open('/downloadfile')):
ui.icon('download')
ui.upload(on_upload=lambda e: save_file(e.content.read(), e.name),
on_rejected=lambda: ui.notify('Rejected!')).classes('max-w-full')
@ui.page('/downloadfile')
async def upload_page():
file = list_files_and_dirs(directory)
with ui.row():
with ui.button(on_click=lambda: ui.open('/')):
ui.icon('arrow_back')
ui.label('文件下载').classes('text-h5')
with ui.button(on_click=lambda: ui.open('/uploadfile')):
ui.icon('upload')
for i in file:
with ui.item(on_click=lambda: ui.notify('开始下载...')):
with ui.item_section().props('avatar'):
ui.icon('download')
with ui.item_section():
ui.link(f'{i.replace(directory, "")}', i)
ui.run(title='文件上传下载工具', host='0.0.0.0', port=8080)
## 效果展示
mqw921 发表于 2024-6-22 23:41
求教,这种要怎么用?Win10-64位电脑,需要搭配什么软件使用?
需要懂点Python编程知识,下载个轻量级的PY开发环境,我用的是Thonny,复制楼主帖子中的源码,然后在Thonny中运行,如果缺什么包,就用PIP安装什么包。 龍謹 发表于 2024-6-23 07:37
需要懂点Python编程知识,下载个轻量级的PY开发环境,我用的是Thonny,复制楼主帖子中的源码,然后在Thon ...
谢谢你,我用你的Thonny,运行成功了。但是是在互联网电脑上,我要是拷贝到局域网电脑上,缺少模块的话,要怎么安装?模块有没有独立安装包? 话说nicegui有官方文档吗 bester 发表于 2024-6-21 16:41
话说nicegui有官方文档吗
有的,https://nicegui.io/ 我用flask框架也写了个异曲同工的{:1_918:} 支持,老哥 FengTao12593 发表于 2024-6-21 16:49
我用flask框架也写了个异曲同工的
不过flask的前端只能手搓,稍微麻烦一点{:1_890:} 学习到了,谢谢分享 装上试试 谢谢,需要用到 学习一下,可能用得上。