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

128 lines
2.8 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.

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