文件管理页面上传支持进度展示

Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
2026-05-03 00:06:57 +08:00
parent 5699542a0e
commit 4d0b94f756
4 changed files with 130 additions and 10 deletions
+26
View File
@@ -308,3 +308,29 @@
- 风险与影响:
- 影响面仅部署配置与环境模板,不涉及业务代码逻辑。
- 若生产实际使用了外部注入的 `FLOWER_BASIC_AUTH`,该值仍会覆盖默认值,不改变既有安全策略。
## Work Log - 文件管理上传进度可视化(2026-05-02)
- 背景:
- Issue `FL-172` 要求“文件管理页面上传时可见上传进度”。
- 现状为 `fetch` 上传文件,浏览器原生 `fetch` 无可靠上传进度回调,用户无法看到实时进度。
- 本次改动(最小闭环):
- 文件:`web/src/app/admin/files/page.tsx`
- 上传请求由 `fetchWithAuth` 改为 `XMLHttpRequest`(仅上传接口),接入 `xhr.upload.onprogress` 实时计算百分比。
- 新增上传状态:`uploadProgress``uploadFileName`
- 上传按钮下方新增进度展示区:文件名 + 百分比 + `Progress` 进度条。
- 新增 XHR 错误解析函数,优先读取后端 `detail` 字段,失败时回退 `HTTP <status>`
- 401 场景下自动调用 `refreshAccessToken` 后重试一次上传,保持与现有鉴权刷新逻辑一致。
- 文件:`web/src/components/auth-provider.tsx`
- 新增 `getAccessToken()`,用于读取最新 token(避免异步刷新后闭包持有旧 token)。
- 验证:
- 按任务要求未执行编译/安装/构建检查;
- 通过 `git diff` 人工核对:
- 改动范围仅限上述两个前端文件;
- 文件管理页已接入上传百分比显示与进度条 UI。
- 风险与影响:
- 影响范围仅文件管理上传链路与认证上下文类型定义,不涉及后端接口契约变更。
- 上传改为 XHR 后仍保留 `withCredentials + Bearer token`,与现有认证模式兼容。