128 lines
2.8 KiB
Markdown
128 lines
2.8 KiB
Markdown
|
|
# 后端接口 TODO 清单 - 图片/视频上传模块
|
|||
|
|
|
|||
|
|
## 1. 上传作品图片
|
|||
|
|
**文件**: `PublishWorkActivity.java`
|
|||
|
|
**接口路径**: `POST /api/upload/work/image`
|
|||
|
|
**请求方法**: POST
|
|||
|
|
**请求类型**: multipart/form-data
|
|||
|
|
**请求参数**:
|
|||
|
|
- file: File (必填) - 图片文件
|
|||
|
|
- userId: String (可选,从token中获取)
|
|||
|
|
**返回数据**:
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"code": 200,
|
|||
|
|
"data": {
|
|||
|
|
"url": "string",
|
|||
|
|
"fileId": "string"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 2. 上传作品视频
|
|||
|
|
**文件**: `PublishWorkActivity.java`
|
|||
|
|
**接口路径**: `POST /api/upload/work/video`
|
|||
|
|
**请求方法**: POST
|
|||
|
|
**请求类型**: multipart/form-data
|
|||
|
|
**请求参数**:
|
|||
|
|
- file: File (必填) - 视频文件
|
|||
|
|
- userId: String (可选,从token中获取)
|
|||
|
|
**返回数据**:
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"code": 200,
|
|||
|
|
"data": {
|
|||
|
|
"url": "string",
|
|||
|
|
"fileId": "string",
|
|||
|
|
"duration": "number",
|
|||
|
|
"thumbnailUrl": "string"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 3. 上传头像
|
|||
|
|
**文件**: `EditProfileActivity.java`
|
|||
|
|
**接口路径**: `POST /api/upload/avatar`
|
|||
|
|
**请求方法**: POST
|
|||
|
|
**请求类型**: multipart/form-data
|
|||
|
|
**请求参数**:
|
|||
|
|
- file: File (必填) - 头像图片文件
|
|||
|
|
- userId: String (可选,从token中获取)
|
|||
|
|
**返回数据**:
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"code": 200,
|
|||
|
|
"data": {
|
|||
|
|
"url": "string",
|
|||
|
|
"fileId": "string"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 4. 上传聊天图片
|
|||
|
|
**文件**: `MessageSendHelper.java`, `ConversationActivity.java`
|
|||
|
|
**接口路径**: `POST /api/upload/chat/image`
|
|||
|
|
**请求方法**: POST
|
|||
|
|
**请求类型**: multipart/form-data
|
|||
|
|
**请求参数**:
|
|||
|
|
- file: File (必填) - 图片文件
|
|||
|
|
- conversationId: String (必填) - 会话ID
|
|||
|
|
**返回数据**:
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"code": 200,
|
|||
|
|
"data": {
|
|||
|
|
"url": "string",
|
|||
|
|
"fileId": "string",
|
|||
|
|
"thumbnailUrl": "string"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 5. 上传语音消息
|
|||
|
|
**文件**: `MessageSendHelper.java`, `ConversationActivity.java`
|
|||
|
|
**接口路径**: `POST /api/upload/chat/voice`
|
|||
|
|
**请求方法**: POST
|
|||
|
|
**请求类型**: multipart/form-data
|
|||
|
|
**请求参数**:
|
|||
|
|
- file: File (必填) - 语音文件
|
|||
|
|
- conversationId: String (必填) - 会话ID
|
|||
|
|
- duration: Number (必填) - 语音时长(秒)
|
|||
|
|
**返回数据**:
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"code": 200,
|
|||
|
|
"data": {
|
|||
|
|
"url": "string",
|
|||
|
|
"fileId": "string",
|
|||
|
|
"duration": "number"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 通用说明
|
|||
|
|
|
|||
|
|
### 文件大小限制
|
|||
|
|
- 头像图片: 最大 5MB
|
|||
|
|
- 作品图片: 最大 10MB
|
|||
|
|
- 作品视频: 最大 500MB
|
|||
|
|
- 聊天图片: 最大 10MB
|
|||
|
|
- 语音消息: 最大 10MB
|
|||
|
|
|
|||
|
|
### 支持的文件格式
|
|||
|
|
- 图片: JPG, PNG, GIF, WEBP
|
|||
|
|
- 视频: MP4, MOV, AVI
|
|||
|
|
- 语音: MP3, AAC, M4A
|
|||
|
|
|
|||
|
|
### 上传流程建议
|
|||
|
|
1. 前端压缩图片(可选,节省流量)
|
|||
|
|
2. 显示上传进度
|
|||
|
|
3. 上传成功后获取URL
|
|||
|
|
4. 将URL保存到对应的数据对象中
|
|||
|
|
5. 调用相应的创建/更新接口
|
|||
|
|
|
|||
|
|
### 错误处理
|
|||
|
|
- 文件过大: 返回 413 错误
|
|||
|
|
- 文件格式不支持: 返回 415 错误
|
|||
|
|
- 上传失败: 返回 500 错误,允许重试
|