Skip to content

sky41/Document-Control-Development

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

文件管理系统 (Document Control Development)

项目简介

这是一个基于Spring Boot开发的文件管理系统,提供文件的上传、下载、删除和列表展示功能。系统采用前后端分离架构,前端使用HTML/CSS/JavaScript,后端使用Spring Boot + Spring Data JPA + MySQL。

技术栈

  • 后端框架: Spring Boot 2.7.15
  • 数据访问: Spring Data JPA
  • 数据库: MySQL 8.0.33
  • 前端技术: HTML5, CSS3, JavaScript (原生)
  • 构建工具: Maven
  • Java版本: 1.8

项目结构

src/
├── main/
│   ├── java/com/example/filemanagement/
│   │   ├── config/          # 配置类
│   │   ├── controller/      # 控制器层
│   │   ├── entity/          # 实体类
│   │   ├── exception/       # 异常处理
│   │   ├── repository/      # 数据访问层
│   │   └── service/         # 业务逻辑层
│   └── resources/
│       ├── static/          # 静态资源(前端页面)
│       ├── db/              # 数据库脚本
│       └── application.yml  # 配置文件

主要功能

  1. 文件上传: 支持各种类型文件的上传,文件大小限制为10MB
  2. 文件下载: 支持文件下载,正确处理中文文件名
  3. 文件删除: 支持删除已上传的文件
  4. 文件列表: 展示所有已上传文件的列表
  5. 文件信息展示: 显示文件名、大小、类型、上传时间等信息

API接口文档

基础信息

  • 服务端口: 8080
  • 基础路径: /api/files
  • 跨域支持: 已配置CORS,支持跨域请求

接口详情

1. 上传文件

POST /api/files/upload
Content-Type: multipart/form-data

参数:
- file: 文件对象 (必填)

响应:
{
    "code": 200,
    "message": "success",
    "data": {
        "id": "文件ID",
        "fileName": "存储文件名",
        "originalFileName": "原始文件名",
        "fileType": "文件类型",
        "fileSize": 文件大小,
        "filePath": "文件路径",
        "uploadTime": "上传时间"
    }
}

2. 获取文件列表

GET /api/files

响应:
{
    "code": 200,
    "message": "success",
    "data": [
        {
            "id": "文件ID",
            "fileName": "存储文件名",
            "originalFileName": "原始文件名",
            "fileType": "文件类型",
            "fileSize": 文件大小,
            "filePath": "文件路径",
            "uploadTime": "上传时间"
        }
    ]
}

3. 下载文件

GET /api/files/download/{id}

参数:
- id: 文件ID (路径参数)

响应:
- 文件内容流下载
- Content-Disposition: attachment; filename*=UTF-8''{编码后的文件名}

4. 删除文件

DELETE /api/files/{id}

参数:
- id: 文件ID (路径参数)

响应:
{
    "code": 200,
    "message": "success",
    "data": true
}

响应状态码说明

状态码 说明
200 操作成功
400 请求参数错误
404 文件不存在
413 文件大小超过限制
500 服务器内部错误

数据库设计

文件信息表 (file_info)

CREATE TABLE file_info (
    id VARCHAR(36) NOT NULL COMMENT '文件唯一标识UUID',
    file_name VARCHAR(255) NOT NULL COMMENT '存储的文件名',
    original_file_name VARCHAR(255) NOT NULL COMMENT '原始文件名',
    file_type VARCHAR(50) NOT NULL COMMENT '文件类型(不含点号)',
    file_size BIGINT NOT NULL COMMENT '文件大小(字节)',
    file_path VARCHAR(500) NOT NULL COMMENT '文件存储路径',
    upload_time DATETIME NOT NULL COMMENT '上传时间',
    PRIMARY KEY (id),
    INDEX idx_upload_time (upload_time),
    INDEX idx_file_name (file_name),
    INDEX idx_file_type (file_type)
);

文件操作日志表 (file_operation_log)

CREATE TABLE file_operation_log (
    id BIGINT AUTO_INCREMENT PRIMARY KEY,
    file_id VARCHAR(36) NOT NULL COMMENT '关联的文件ID',
    operation_type VARCHAR(20) NOT NULL COMMENT '操作类型:UPLOAD/DOWNLOAD/DELETE',
    operation_time DATETIME NOT NULL DEFAULT NOW() COMMENT '操作时间',
    ip_address VARCHAR(50) COMMENT '操作用户IP',
    user_agent VARCHAR(500) COMMENT '用户代理信息',
    INDEX idx_file_id (file_id),
    INDEX idx_operation_time (operation_time),
    INDEX idx_operation_type (operation_type),
    FOREIGN KEY (file_id) REFERENCES file_info(id) ON DELETE CASCADE
);

配置文件说明

application.yml 主要配置

server:
  port: 8080

spring:
  servlet:
    multipart:
      max-file-size: 10MB    # 单个文件最大大小
      max-request-size: 10MB # 整个请求最大大小
  
  datasource:
    url: jdbc:mysql://101.42.255.221:3309/file_management?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
    username: root
    password: L#QZLry14171609*.
    driver-class-name: com.mysql.cj.jdbc.Driver
  
  jpa:
    hibernate:
      ddl-auto: update        # 自动更新数据库结构
    show-sql: true            # 显示SQL语句

file:
  upload-dir: d:/uploads    # 文件上传存储路径

快速开始

1. 环境要求

  • Java 1.8+
  • Maven 3.6+
  • MySQL 8.0+

2. 数据库准备

CREATE DATABASE file_management CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE file_management;
-- 执行 src/main/resources/db/init.sql 中的建表语句

3. 修改配置

编辑 src/main/resources/application.yml,修改数据库连接信息和文件存储路径。

4. 编译运行

# 编译项目
mvn clean compile

# 运行项目
mvn spring-boot:run

# 或者直接运行jar包
java -jar target/file-management-1.0.0.jar

5. 访问系统

打开浏览器访问: http://localhost:8080/index.html

使用说明

  1. 上传文件: 点击"选择文件"按钮选择要上传的文件,然后点击"上传文件"
  2. 下载文件: 在文件列表中点击对应文件的"下载"按钮
  3. 删除文件: 在文件列表中点击对应文件的"删除"按钮,确认后删除
  4. 查看文件信息: 文件列表中显示文件名、大小、类型和上传时间

注意事项

  1. 确保上传目录存在且有写入权限
  2. 数据库连接信息需要正确配置
  3. 文件大小限制为10MB,可在配置文件中修改
  4. 支持跨域访问,已配置CORS

扩展功能

系统预留了文件操作日志功能,可以记录文件的上传、下载、删除操作,便于后续的功能扩展和审计需求。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published