zhibo/android-app/后端接口TODO清单-图片上传.md

128 lines
2.8 KiB
Markdown
Raw Normal View History

# 后端接口 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 错误,允许重试