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 错误,允许重试
|