多文件上传需用队列控制器统一调度,控制并发、隔离状态、支持暂停/取消/重试,并为分片上传和秒传打基础。

多文件同时上传时,队列管理不是简单地“一起发请求”,而是要控制并发、隔离状态、统一响应。关键在于避免资源争抢、进度错乱和失败干扰。
用上传队列控制器统一调度
不要依赖浏览器原生的 multiple + auto-upload 模式——它会为每个文件发起独立请求,缺乏协调能力,容易触发后端限流或前端内存飙升。应主动接管上传流程:
- 创建一个队列数组(如 uploadQueue),每项包含文件对象、唯一 ID、当前状态(ready/pending/uploading/success/error)、重试次数等字段
- 设定最大并发数(如 3),用一个计数器控制同时活跃的上传任务数
- 每次有空闲 slot 时,从队列头部取出一个任务执行;上传完成(无论成功或失败)后自动触发下一轮调度
- 提供暂停/恢复/取消接口:暂停时冻结计数器并保留队列顺序;取消某一项时仅标记其状态为 canceled,不中断其他运行中任务
每个文件独立维护状态与进度
多个文件共用同一个进度条或 loading 状态,会导致视觉混乱和逻辑耦合。必须做到状态隔离:

