用户头像本地上传与获取接口设计-项目改动概要.md 1.6 KB

项目头像上传与获取功能开发概要

1. 配置文件调整

  • src/main/resources/application.yml 增加如下配置:

    avatar:
    root-path: D:/avatar-storage/
    max-size: 2MB
    allowed-types: jpg,png,jpeg,webp
    

2. Controller 层

  • 新增 UserAvatarController,实现:
    • POST /user/avatar/upload:接收 MultipartFile,校验类型/大小,仅允许当前用户上传,调用 Service 处理,返回 R<String>
    • GET /user/avatar/{userId}:根据 userId 查询头像相对路径,返回图片流,找不到返回默认图片。
  • 接口需加 Swagger 注解,响应格式与项目一致。

3. Service 层

  • 新增 UserAvatarService 及实现类,负责:
    • 头像存储路径生成、文件校验、保存本地、数据库 avatar 字段更新。
    • 获取头像文件流,处理异常和默认头像。
    • 日志记录(info/error,含 userId、文件名、IP)。

4. Model/VO 层

  • UserInfo 实体已含 avatar 字段,无需变更。
  • 如有头像相关 VO,userId 字段类型需为 String。

5. 工具类/配置类

  • 如有需要,增加头像相关配置类、文件工具类(如路径拼接、类型校验等)。

6. 日志与安全

  • 上传/更新/异常操作按规范记录日志。
  • 上传接口需校验当前用户,仅允许本人操作。
  • 获取接口需防止路径穿越。

7. 测试

  • 增加单元测试和集成测试,覆盖文件校验、路径生成、接口兼容性等。

8. 文档与Swagger

  • 补充接口注解,确保 Swagger 文档完整,泛型返回类型文档化。

如需详细开发步骤可进一步细化。