SepUpload 上传 v1.0
点击上传 · 拖拽上传 · 粘贴上传 · 三种列表模式(text / picture / picture-card)· beforeUpload 钩子 · customRequest 自定义上传
0. HTML 声明式标签 — SepBase.autoInit() 自动驱动
HTML 声明式标签
1. 基本点击上传 — text 列表模式
HTML 声明式标签
JS API 初始化 — 单文件上传
JS API 初始化 — 多文件上传
2. 拖拽上传 — drag 模式
HTML 声明式标签
JS API 初始化 — 拖拽上传区
3. 图片列表模式 — picture 缩略图
HTML 声明式标签
JS API 初始化 — picture 模式
4. 图片卡片模式 — picture-card 网格
HTML 声明式标签
JS API 初始化 — picture-card 模式
5. 文件类型与大小限制
HTML 声明式标签 — 仅图片 (image/*)
HTML 声明式标签 — 仅 PDF (.pdf)
HTML 声明式标签 — 最多 3 个文件
JS API 初始化 — 仅图片 (image/*)
JS API 初始化 — 仅 PDF (.pdf)
JS API 初始化 — 最多 3 个文件
6. beforeUpload 钩子 & 生命周期回调
HTML 声明式标签 — beforeUpload 拦截大文件
JS API 初始化 — beforeUpload 拦截大文件
JS API 初始化 — onChange / onSuccess / onError 回调
7. 实例方法 & 状态控制
JS API 初始化 — 方法 & 状态控制
8. 拖拽排序 — sortable
HTML 声明式标签 — 拖拽排序
JS API 初始化 — 拖拽排序 + onSort
9. 自定义上传 — customRequest
JS API 初始化 — 模拟异步上传(1.5s 延迟)
10. 文件转换 / 下载 / 预览
HTML 声明式标签 — 显示下载按钮
JS API 初始化 — transformFile + onDownload + onPreview
11. 分片上传 — chunk
HTML 声明式标签 — 1MB 分片
JS API 初始化 — 分片上传 + 进度控制
12. 文件夹 / 拍照 / 禁用 / Headers
HTML 声明式标签 — 文件夹上传
JS API 初始化 — 拍照模式 (mobile)
JS API 初始化 — 禁用状态 + Headers
13. 增强功能:函数 action / 并发控制 / 进度条颜色 / LIST_IGNORE
JS API 初始化 — 动态 action + 并发限制 + 进度条颜色
JS API 初始化 — LIST_IGNORE 跳过 .gitkeep 文件(添加其他文件正常)
JS API 初始化 — isImageUrl 自定义缩略图 + className / style
JS API 初始化 — beforeRemove 确认删除 + showInfo/strokeWidth 定制
14. i18n 多语言:text / hint 支持 i18n key,语言切换自动刷新
点击切换全局语言,下方两个实例文案会自动更新
JS API 初始化 — 显式 i18n key(text: 'upload.text')
JS API 初始化 — 不设 text/hint,自动取 i18n 默认值(拖拽区)
15. 内置图片灯箱:点击图片预览,支持缩放 / 旋转 / 键盘导航
JS API 初始化 — picture-card 模式(点击图片打开灯箱)
JS API 初始化 — picture 模式(点击预览按钮打开灯箱)
16. 图片裁剪:上传后弹出裁剪框,确认后上传
JS API 初始化 — 自由裁剪
JS API 初始化 — 1:1 头像裁剪
JS API 初始化 — 16:9 封面裁剪
17. 图片自动压缩:上传前按最大边/质量压缩
JS API 初始化 — 最大边 1280,质量 0.8
JS API 初始化 — 最大边 800,质量 0.6(更激进)
18. EXIF 方向修正 + 文件类型图标
JS API 初始化 — 自动修正手机照片 EXIF 方向
picture 模式上传非图片文件 — 自动显示对应类型图标(pdf/doc/excel/zip...)
灯箱已内置下载按钮:打开图片灯箱后点击 ⬇ 图标即可下载当前图片(支持旋转后导出)
19. 增强功能 — 尺寸校验 / 严格类型 / 去重 / 裁剪平移缩放
图片尺寸校验:宽高限制 + 严格 MIME 类型校验(防改后缀绕过)
文件去重:相同文件名 + 大小自动拒绝
裁剪器增强:滚轮缩放 / 拖拽平移 / 左右旋转 / 任意角度
20. 断点续传 — 分片上传 + 暂停/继续 + 已上传分片自动跳过
启用 resumable 后,文件分片上传,支持暂停/继续,刷新页面后重新选择同一文件可自动跳过已上传分片
21. 高级特性 — 超时 · 自动重试 · 自定义拖拽提示
timeout 超时中断、retry 失败自动重试、dragHintText 拖拽自定义提示文案、persist 刷新后恢复已上传文件
详细说明
组件定位
SepUpload 提供企业级文件上传能力,支持点击 / 拖拽 / 粘贴三种交互,三种列表展示模式(text / picture / picture-card),内置图片压缩裁剪、MIME 严格校验、断点续传、状态持久化等完整能力链。
核心用法
action— 上传接口地址,必填listType— 列表模式:text / picture / picture-carddrag— 启用拖拽上传区accept— 文件类型限制,如 image/*,.pdfstrictAccept— 启用文件头魔数严格校验dedupe— 启用文件去重(name+size)maxCount— 最大文件数量maxSize— 单个文件最大字节数beforeUpload— 上传前钩子,支持 PromisecustomRequest— 自定义上传实现
图片处理
compress— 图片压缩,支持 maxWidth/maxHeight/qualitycompress.toWebp— 压缩时输出 WebP 格式fixOrientation— 修正 JPEG EXIF 方向imageMin/MaxWidth/Height— 图片尺寸校验SepCropper— 内置图片裁剪器,支持缩放/平移/旋转
断点续传
chunk— 启用分片上传chunkSize— 分片大小,默认 2MBchunkConcurrent— 分片并发数chunkRetry— 单片失败重试次数resumable— 启用断点续传checkChunk— 服务端分片查询回调mergeChunk— 分片合并回调getChunkParams— 自定义分片参数onBeforeResume— 续传前拦截钩子
传输控制
retry— 上传失败自动重试次数timeout— 上传超时毫秒数showSpeed— 显示上传速度与剩余时间maxConcurrent— 多文件并发上传数headers/data— 自定义请求头/附加数据onChunkProgress— 单片上传进度回调
状态持久化
persist— 启用 localStorage 持久化persistKey— 自定义存储键名- 仅持久化已上传完成的文件元数据
- 刷新页面后自动恢复已上传文件列表
clearFiles()同步清除持久化记录
注意事项
- drag 模式下全局监听 dragenter/dragleave
dragHintText拖拽时临时替换提示文案- picture / picture-card 模式自动生成图片缩略图
- 粘贴上传仅支持图片类型文件
- maxCount 达到上限后自动隐藏上传按钮
- strictAccept 通过文件头魔数检测,防止改后缀绕过
API 速查
getFileList()setFileList(list)
clearFiles()upload()
abort(file)retry(file)
pause(file)resume(file)
pauseAll()resumeAll()
openFileDialog()clearPersist()
setDisabled(v)setMaxCount(v)
setMaxSize(v)getState()
setState({})subscribe(fn)
destroy()