# PRD - 文件上传 > **REQ编号**: REQ-用户-002 > **版本**: v1.0 > **优先级**: P0 > **阶段**: 近期(1-2个月) > **作者**: 宋献 > **日期**: 2026-07-19 --- ## 一、问题陈述 **用户问题**: - 员工无法在 H5 端上传截图/文件 - 遇到问题时只能文字描述,无法提供错误截图、日志文件等 - 限制了 AI 多模态理解能力 **业务目标**: - 员工可上传图片、文档、日志等文件 - 坐席端可查看上传的文件 - 为后续多模态 AI 能力铺路 --- ## 二、需求范围 ### 2.1 核心功能 | 功能 | 描述 | |------|------| | H5图片上传 | 支持拍照、相册选择上传图片 | | H5文件上传 | 支持上传文档、日志等文件 | | 坐席端查看 | 坐席可查看会话中上传的文件 | | 文件预览 | 支持图片、PDF、TXT 等常见格式预览 | ### 2.2 非目标 - 不支持大文件(>10MB)直接上传 - 不支持文件编辑/协作 - 不支持文件夹上传 --- ## 三、用户故事 | 角色 | 用户故事 | 验收标准 | |------|----------|---------| | 员工 | 我可以拍照或选择相册图片上传 | 点击上传按钮,可选择拍照或相册,上传成功后在消息中显示缩略图 | | 员工 | 我可以上传文档或日志文件 | 上传后显示文件名,点击可预览或下载 | | 坐席 | 我可以查看会话中的文件 | 文件作为消息的一部分显示,点击可查看详情 | | 坐席 | 我可以下载原始文件 | 支持下载到本地 | --- ## 四、功能详情 ### 4.1 H5 端 **入口**: - 聊天输入框右侧增加「附件」按钮 - 点击弹出操作菜单:拍照、相册、文件 **交互**: - 图片:选择后显示缩略图预览,支持删除重选 - 文件:选择后显示文件名、大小,支持删除重选 - 上传中显示进度条 - 上传失败显示错误提示,支持重试 **限制**: - 单文件最大 10MB - 每天最多上传 20 个文件 ### 4.2 坐席端 **展示**: - 图片显示为缩略图,点击放大 - 文件显示文件名、类型、大小 - 支持下载到本地 **预览**: - 图片:支持缩放、旋转 - PDF:内嵌 PDF 查看器 - TXT/LOG:文本内容预览 ### 4.3 后端 **存储**: - 本地存储(/opt/wecom-it-desk/uploads) - 文件名使用 UUID 重命名 - 保留原始文件名和扩展名 **接口**: - `POST /api/file/upload` - 上传文件 - `GET /api/file/{id}` - 获取文件信息 - `GET /api/file/{id}/download` - 下载文件 - `DELETE /api/file/{id}` - 删除文件 --- ## 五、指标设计 | 指标 | 目标 | 测量方式 | |------|------|---------| | 上传成功率 | ≥ 99% | 上传成功次数/上传总次数 | | 平均上传时间 | ≤ 3s | 1MB以内文件上传耗时 | | 日上传量 | 统计 | 每日上传文件数 | --- ## 六、技术方案 | 端 | 技术选型 | |----|---------| | H5端 | van-uploader 组件 | | 坐席端 | el-upload 组件 | | 后端 | FastAPI + 静态文件服务 | --- ## 七、关联文档 - 前置需求: 无 - 后续需求: REQ-AI-003 多模态视觉理解