Skip to content

tjc6666666666666/wenjianshare

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

文件上传与管理系统

这是一个基于Flask框架开发的文件上传与管理系统,集成Alist WebDAV进行文件存储,支持用户认证、文件分类、缩略图生成和权限管理等功能。

功能特点

  • 支持多种文件类型上传(图片、视频、压缩包等)
  • 文件存储在Alist WebDAV,节省本地存储空间
  • 自动为图片生成缩略图,便于预览
  • 基于用户角色的权限管理(管理员和普通用户)
  • 普通用户仅能管理自己上传的文件
  • 文件列表分页展示,支持批量删除操作
  • 支持文件备注功能(如压缩包密码等信息)
  • 按日期自动组织文件存储目录

环境要求

  • Python 3.6+
  • Alist 服务(用于WebDAV存储)

安装步骤

  1. 克隆或下载项目代码

  2. 安装依赖包

pip install flask flask-sqlalchemy pillow requests webdav3-client
  1. 初始化数据库 数据库会在首次运行时自动创建(SQLite),无需额外操作

配置说明

在代码中需要根据实际情况修改以下配置项:

# Alist WebDAV配置
ALIST_CONFIG = {
    'host': 'http://127.0.0.1:5244/dav/',  # 你的Alist WebDAV地址(必须以/结尾)
    'user': '34',                          # Alist用户名
    'password': '1'                        # Alist密码
}

# 管理员账户配置
ADMIN_USER = '?'  # 替换为实际管理员用户名
ADMIN_PWD = '?'   # 替换为实际管理员密码

# 密钥配置(重要!)
app.secret_key = 'your-secure-secret-key-here-123456'  # 务必修改为随机密钥

其他可配置项:

  • 最大文件上传大小(默认1600MB)
  • 允许的文件类型
  • 缩略图尺寸(默认200px)
  • Cookie有效期(默认30天)

使用方法

  1. 启动应用
python app.py
  1. 访问系统 在浏览器中访问 http://localhost:5678

  2. 登录系统

    • 管理员账户:使用配置的ADMIN_USER和ADMIN_PWD
    • 普通用户:默认账户123/123(可在代码中修改)
  3. 上传文件

    • 点击上传区域选择文件
    • 可选:添加文件备注(如压缩包密码)
    • 点击上传按钮完成上传
  4. 管理文件

    • 点击文件名可下载文件
    • 勾选文件后点击删除按钮可批量删除
    • 管理员可删除所有文件,普通用户仅能删除自己上传的文件

目录结构

project/
├── app.py               # 主应用程序
├── instance/
│   └── file.db          # SQLite数据库文件
├── static/
│   └── thumbnails/      # 缩略图存储目录
├── templates/           # HTML模板文件
│   ├── index.html       # 首页(文件列表)
│   └── login.html       # 登录页面
└── temp/                # 临时文件目录

注意事项

  1. 首次使用前务必修改默认密钥和管理员密码,确保系统安全
  2. 确保Alist服务正常运行且WebDAV配置正确
  3. 大文件上传可能需要调整超时设置
  4. 定期备份数据库文件(instance/file.db)以防数据丢失
  5. 缩略图仅对图片文件生成,视频和压缩包无缩略图

常见问题

  • 文件上传失败:检查Alist服务是否正常,WebDAV配置是否正确,文件大小是否超过限制
  • 无法删除文件:普通用户只能删除自己上传的文件,管理员无此限制
  • 缩略图不显示:检查图片格式是否支持,临时目录权限是否正确

如有其他问题,请查看应用日志或检查相关服务配置。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors