datai/docs/archive/api-docs/file/SysFileInfoController/0004-add.md

139 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 新增文件
## 接口信息
- **接口名称**: 新增文件
- **接口路径**: /file/info
- **请求方法**: POST
- **模块归属**: file
- **版本号**: v1.0.0
- **创建日期**: 2026-01-18
- **最后更新**: 2026-01-18
## 功能描述
新增文件记录到数据库。通常在文件上传成功后自动调用,也可以手动创建文件记录。
## 请求参数
### 请求体 (JSON)
```json
{
"fileName": "test.jpg",
"filePath": "/upload/2026/01/18/1234567890_test.jpg",
"storageType": "minio",
"fileType": "jpg",
"fileSize": 102400,
"md5": "d41d8cd98f00b204e9800998ecf8427e"
}
```
| 参数名 | 类型 | 必填 | 描述 | 示例 |
|--------|------|------|------|------|
| fileName | String | 是 | 原始文件名 | test.jpg |
| filePath | String | 是 | 统一逻辑路径(/开头) | /upload/2026/01/18/1234567890_test.jpg |
| storageType | String | 是 | 存储类型local/minio/oss | minio |
| fileType | String | 否 | 文件类型/后缀 | jpg |
| fileSize | Long | 否 | 文件大小(字节) | 102400 |
| md5 | String | 否 | 文件MD5 | d41d8cd98f00b204e9800998ecf8427e |
## 响应数据
### 成功响应
**HTTP 状态码**: 200 OK
```json
{
"code": 200,
"msg": "操作成功",
"data": 1
}
```
| 字段名 | 类型 | 描述 | 示例 |
|--------|------|------|------|
| data | Integer | 影响的行数 | 1 |
### 失败响应
**HTTP 状态码**: 401 Unauthorized
```json
{
"code": 401,
"msg": "没有权限访问",
"data": null
}
```
**HTTP 状态码**: 500 Internal Server Error
```json
{
"code": 500,
"msg": "新增文件失败",
"data": null
}
```
## 接口示例
### 请求示例
```bash
curl -X POST "http://localhost:8080/file/info" \
-H "Authorization: Bearer [token]" \
-H "Content-Type: application/json" \
-d '{
"fileName": "test.jpg",
"filePath": "/upload/2026/01/18/1234567890_test.jpg",
"storageType": "minio",
"fileType": "jpg",
"fileSize": 102400,
"md5": "d41d8cd98f00b204e9800998ecf8427e"
}'
```
### 响应示例
**成功**:
```json
{
"code": 200,
"msg": "操作成功",
"data": 1
}
```
## 错误处理
- 没有权限访问时返回 401 错误
- 参数错误时返回 400 错误
- 数据库操作失败时返回 500 错误
## 注意事项
- 需要权限system:file:add
- 使用 `@Log` 注解记录操作日志
- fileName、filePath、storageType 为必填字段
- filePath 必须以 / 开头
- storageType 必须是有效的存储类型local/minio/oss
- 创建人和创建时间会自动设置
## 相关接口
- [查询文件列表](./0001-list.md) - 查询文件列表
- [获取文件详细信息](./0003-get-info.md) - 获取单个文件的详细信息
- [修改文件](./0005-edit.md) - 修改文件信息
## 实现细节
- 使用 `ISysFileInfoService.insertSysFileInfo()` 插入文件记录
- 使用 `@Log` 注解记录操作日志,业务类型为 INSERT
- 使用 `@PreAuthorize` 注解进行权限控制
- 继承 `BaseController` 获取基础功能
- 使用 `toAjax()` 方法封装响应