python内网上传下载工具

python内网上传下载工具

利用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)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
PythonWeb是一种基于Python语言开发的网上商城下载工具PythonWeb具有以下特点和功能。 首先,PythonWeb采用Python作为开发语言Python是一种简单易学、功能强大的编程语言。它具有丰富的库和模块,可以快速开发出高效可靠的网上商城应用。 其次,PythonWeb支持网上商城的下载功能。用户可以通过PythonWeb快速下载网上商城的代码并进行安装和部署。PythonWeb提供了简单易用的命令行工具,用户只需要输入相应的命令,就可以自动下载网上商城所需的代码文件,节省了用户大量的时间和精力。 此外,PythonWeb还具有强大的扩展能力。PythonWeb提供了丰富的插件和扩展库,用户可以根据自己的需求自由选择和使用这些插件和扩展库,从而快速构建出符合自己需求的网上商城应用。这些插件和扩展库在开发过程中能够提供丰富的功能和特性,大大提升了开发效率和用户体验。 最后,PythonWeb还具有良好的跨平台性能。由于Python的跨平台特性,PythonWeb可以在多种操作系统上运行,包括Windows、Linux和Mac OS等。这样,用户不需要考虑操作系统的差异,能够轻松地在不同平台上下载网上商城应用,节省了用户的成本和精力。 综上所述,PythonWeb是一种功能强大、易于使用的Python网上商城下载工具。它提供了快速、简便的下载功能,具有良好的扩展能力和跨平台性能,能够满足用户对网上商城应用的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

生而为虫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值