更新记录

1.0.0(2026-11-05) 下载此版本

1.0.0

  • 首个版本:进度/重试/并发池/分片断点续传/abort

平台兼容性

pk-uploader · 上传套件

文件上传:进度回调 / 指数退避重试 / 并发池 / 分片断点续传 / 随时中止。纯 JS。

安装

复制 uni_modules/pk-uploader 到项目 uni_modules/ 下即可。

快速开始

import pkUpload from '@/uni_modules/pk-uploader/js_sdk/index.js';

const r = await pkUpload.upload({
  url: 'https://api.example.com/upload',
  filePath: tempFilePath,
  retries: 2,
  onProgress: ({ loaded, total, percent }) => console.log(percent + '%')
});

方法一览(全部暴露方法)

方法 签名 说明
init init(opts?) 初始化配置,幂等
upload upload(opts) → Promise<{ok,statusCode,data?,error?}> 便捷上传:创建任务并立即开始
createTask createTask(opts) → task 创建可控任务:task.start() 启动、task.abort() 中止
uploadBatch async uploadBatch(list, opts) → {ok,results[],failed} 批量上传,内置并发池,逐项返回结果
activeCount activeCount() → number 当前进行中的任务数
planChunks planChunks(total, chunkSize, doneIdx?) → {chunks,pending} 分片规划纯函数;传已完成下标即跳过(断点续传)
backoffDelay backoffDelay(attempt, base?) → ms 指数退避 + 25% 抖动,上限 30s(纯函数)
runPool async runPool(tasks, limit) → 结果按原下标归位 固定并发池,单任务失败不影响其它(纯函数)
aggregateProgress aggregateProgress(loaded, total) → {loaded,total,percent} 进度聚合(纯函数)
normalizeOptions normalizeOptions(opts) 选项归一 + 下限保护(纯函数)
PLUGIN_VERSION string 插件版本号

upload/createTask 的 opts

键 默认 说明
url 必填 上传接口(multipart/form-data)
filePath 必填 本地文件路径
field 'file' 文件字段名
chunkSize 不分片 传数字(≥64KB)启用分片模式
concurrency 3 并发数(1–8)
retries 2 失败自动重试次数
timeout 60000 单次请求超时 ms
headers / formData {} 附加头 / 表单字段
onProgress — ({loaded,total,percent}) => {}

错误码

码 场景
E-UL-10 上传返回非 2xx(重试耗尽)
E-UL-11 网络失败(重试耗尽)
E-UL-20 分片上传重试耗尽
E-UL-30 批量上传存在失败项

隐私、权限声明

1. 本插件需要申请的系统权限列表:

无

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

无

许可协议

MIT协议

暂无用户评论。