notfff 4f44ce21b1 refactor(database): 优化数据库表结构并添加索引 7 місяців тому
..
AdminControllers 693477b517 feat(GenerateModelAnnotation): 支持自定义Casts类型 7 місяців тому
Casts 693477b517 feat(GenerateModelAnnotation): 支持自定义Casts类型 7 місяців тому
Config 693477b517 feat(GenerateModelAnnotation): 支持自定义Casts类型 7 місяців тому
Databases 4f44ce21b1 refactor(database): 优化数据库表结构并添加索引 7 місяців тому
Docs 693477b517 feat(GenerateModelAnnotation): 支持自定义Casts类型 7 місяців тому
Enums 693477b517 feat(GenerateModelAnnotation): 支持自定义Casts类型 7 місяців тому
Events 693477b517 feat(GenerateModelAnnotation): 支持自定义Casts类型 7 місяців тому
Exceptions 693477b517 feat(GenerateModelAnnotation): 支持自定义Casts类型 7 місяців тому
Listeners 693477b517 feat(GenerateModelAnnotation): 支持自定义Casts类型 7 місяців тому
Logics 693477b517 feat(GenerateModelAnnotation): 支持自定义Casts类型 7 місяців тому
Models 00c4b666fb refactor(app): 优化模型属性注释和类型定义 7 місяців тому
Providers 693477b517 feat(GenerateModelAnnotation): 支持自定义Casts类型 7 місяців тому
Repositories 693477b517 feat(GenerateModelAnnotation): 支持自定义Casts类型 7 місяців тому
Repositorys 693477b517 feat(GenerateModelAnnotation): 支持自定义Casts类型 7 місяців тому
Services 693477b517 feat(GenerateModelAnnotation): 支持自定义Casts类型 7 місяців тому
Validation 693477b517 feat(GenerateModelAnnotation): 支持自定义Casts类型 7 місяців тому
Validator 693477b517 feat(GenerateModelAnnotation): 支持自定义Casts类型 7 місяців тому
README.md 693477b517 feat(GenerateModelAnnotation): 支持自定义Casts类型 7 місяців тому

README.md

文件模块(底层模块)

模块概述

文件模块是一个用于处理文件和图片上传、存储和访问的基础模块,供其他模块使用,提提供外部服务。 该模块提供了文件和图片的上传、存储、访问和管理功能,支持公共和私有文件的区分,以及文件与其他模块实体的关联。

目录结构

app/Module/File/
├── AdminControllers/          # 后台控制器
│   ├── Actions/               # 自定义操作
│   └── Helper/                # 控制器辅助类
├── Casts/                     # 模型属性转换器
├── Config/                    # 配置文件
├── Databases/                 # 数据库相关文件
│   └── GenerateSql/           # 自动生成的SQL文件
├── Docs/                      # 文档
│   ├── 数据库设计.md           # 数据库设计文档
│   └── 服务使用说明.md         # 服务使用说明文档
├── Enums/                     # 枚举类
├── Events/                    # 事件
├── Exceptions/                # 异常处理
├── Listeners/                 # 事件监听器
├── Logics/                    # 业务逻辑层
├── Models/                    # 数据模型
│   ├── FileFile.php           # 文件模型
│   ├── FileImg.php            # 图片文件模型
│   └── FileTemplate.php       # 文件模板模型
├── Repositories/              # 数据仓库层
├── Services/                  # 服务层
├── Validation/                # 验证规则
└── Validator/                 # 验证器
    └── UserFileImgValidator.php # 用户图片文件验证器

数据库表结构

文件表 (file_files)

存储普通文件信息。

字段名 类型 说明
id bigint 主键
path varchar(1000) 存储目录
re_type varchar(100) 关联类型
re_id int 关联ID
o_name varchar(200) 原文件名
fsize bigint 文件大小
type1 varchar(100) 文件类型
updated_at timestamp 更新时间
created_at timestamp 创建时间
deleted_at timestamp 删除时间

图片表 (file_imgs)

存储图片文件信息。

字段名 类型 说明
id bigint 主键
storage_disk varchar(100) 存储磁盘
path varchar(1000) 存储路径
user_id bigint 用户ID
admin_id bigint 管理员ID
re_type varchar(100) 关联类型
re_id int 关联ID
o_name varchar(200) 原文件名
fsize bigint 文件大小
width int 图片宽度
height varchar(1000) 图片高度
type1 varchar(100) 图片类型
private tinyint 是否私有,0:公共,1:私有
updated_at timestamp 更新时间
created_at timestamp 创建时间
deleted_at timestamp 删除时间

文件模板表 (file_template)

存储文件模板信息。

字段名 类型 说明
id bigint 主键
unid varchar(500) 标识
file_id int 文件ID
title varchar(500) 模板标题
desc varchar(100) 描述
status varchar(1) 状态
group varchar(100) 分组
updated_at timestamp 更新时间
created_at timestamp 创建时间
deleted_at timestamp 删除时间

主要功能

文件上传

模块提供了文件和图片的上传功能,支持将文件上传到指定的存储磁盘,并记录文件信息到数据库。

图片处理

支持图片的上传、转换和处理,包括图片格式转换、缩放等功能。

文件访问

提供了获取文件和图片URL的方法,支持公共和私有文件的访问控制。

临时文件处理

支持临时文件的创建、存储和访问,用于临时文件处理场景。

文件模板

支持文件模板的管理,可用于生成基于模板的文件。

使用示例

上传用户图片

// 创建用户上传处理器
$uploader = new \App\Module\File\Upload4User($userId);

// 上传图片
$fileImg = $uploader->uploadImg($request->file('image'));

// 获取图片URL
$imageUrl = $fileImg->getUrl();

获取图片URL

// 通过ID获取图片URL
$imageUrl = \App\Module\File\Img::getPicUrl4Id($imageId);

// 通过路径获取管理后台图片URL
$imageUrl = \App\Module\File\Img::getAdminPicUrl($imagePath);

临时文件处理

// 保存临时文件
$path = \App\Module\File\Temporary::save('jpg', $fileContent);

// 获取临时文件下载URL
$downloadUrl = \App\Module\File\Temporary::getDownUrl($path);

文件存在性检查

// 检查文件是否存在
$exists = \App\Module\File\File::fileExists($filePath);

配置

文件模块使用Laravel的文件系统配置,主要配置项包括:

  • FILESYSTEM_DISK: 默认存储磁盘,默认为'local'
  • FILESYSTEM_TEMP_DISK: 临时文件存储磁盘,默认与FILESYSTEM_DISK相同

这些配置可以在.env文件中设置。