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

2.8 KiB
Raw Permalink Blame History

后端接口 TODO 清单 - 图片/视频上传模块

1. 上传作品图片

文件: PublishWorkActivity.java 接口路径: POST /api/upload/work/image 请求方法: POST 请求类型: multipart/form-data 请求参数:

  • file: File (必填) - 图片文件
  • userId: String (可选从token中获取) 返回数据:
{
  "code": 200,
  "data": {
    "url": "string",
    "fileId": "string"
  }
}

2. 上传作品视频

文件: PublishWorkActivity.java 接口路径: POST /api/upload/work/video 请求方法: POST 请求类型: multipart/form-data 请求参数:

  • file: File (必填) - 视频文件
  • userId: String (可选从token中获取) 返回数据:
{
  "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中获取) 返回数据:
{
  "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 返回数据:
{
  "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 (必填) - 语音时长(秒) 返回数据:
{
  "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 错误,允许重试