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