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

 
 
 

Contributors