uxcore-uploader
v3.7.4
Published
uxcore-uploader component for react
Downloads
322
Readme
Uxcore Uploader
uxcore-uploader component for react
$ git clone https://github.com/uxcore/uxcore-uploader
$ cd uxcore-uploader
$ npm start
see https://uxco.re/components/uploader/ for details.
上传组件, 封装UploadCore核心组件, 作为UI层.
API
reset()
重置文件队列
Props
| name | type | default | Since Ver. | description |
|---------- |---------------|---------|------------|------------|
|className | | | | |
|locale | string | zh-cn | 1.1.10 | 国际化,目前支持 zh-cn
, en-us
和 pl-pl
|
|fileList | array | [] | 1.2.3 |用于展示的文件列表, 见说明 “fileList 更新说明”|
|isOnlyImg | boolean | false | 1.2.1 | 是否以图片形式展示 |
|isVisual | boolean | false | 2.0.0 | 是否可视化展示 |
|hideUploadIcon | boolean | false | 3.2.2 | 在可视化展示下,达到容量(queueCapcity)后是否隐藏上传入口 |
|core | string/Core
| null | | 唯一标识或者UploadCore对象, 防止重复创建, 当传入UploadCore对象时,下列参数和事件设置均无效 |
|name | string | 'file' | | 上传文件字段名称 |
|url | string | '' | | 响应上传服务器地址 |
|params | object/array | null | | 上传文件额外参数 |
|headers | array | null | | 上传文件额外头 |
|withCredentials | bool | false | | 上传文件是否自动附带cookie等信息 |
|timeout | int | 0 | | 上传超时限制 0表示不限制 |
|chunkEnable | bool | false | | 是否允许分片上传 |
|chunkSize | size | 0 | | 文件分片大小, 默认单位b,0不分片 |
|chunkRetries | int | 0 | | 文件分片上传重试次数 |
|chunkProcessThreads | int | 2 | | 分片上传并发数 |
|processThreads | int | 2 | | 文件上传并发数 |
|queueCapcity | int | 0 | | 队列容量,0无限; |
|autoPending | bool | true | | 是否选择后自动等待上传 |
|multiple | bool | true | | 是否多选 |
|accept | string/array | null | | 允许文件类型, chrome 下的已知问题 |
|sizeLimit | size | 0 | | 文件大小限制, 0表示不限制 |
|preventDuplicate | bool | false | | 是否防止文件重复 |
|readOnly | bool | false | 3.0.0 | 是否以只读方式显示图片,有该属性时请fileList不能为空 |
|showErrFile | bool | true | 3.2.0 | 是否显示上传出错的文件项 |
|actionOnQueueLimit | string | error | 1.5.10 | 当队列超长时采取的策略:error, 抛错;cover, 覆盖 |
fileList 的最小格式 (格式稍显麻烦,是为了 onChange 的返回值可以传回给 fileList)
[
{
name: '', // 文件名称,列表形式必填
ext: '', // 文件扩展名。例如 jpg。可选,不填时无法根据类型展示对应图标
fileType: '', // 文件 mimetypes 类型。 例如 image/jpg。 可选,不填时无法根据类型展示对应图标
response: {
url: xxx, // 文件链接,必填
canRemove: true, // 是否可以删除,可选
downloadUrl: 'xxxx', // 下载 URL,可选
}
}
]
fileList 更新说明
Since 3.3.10 版本,当前已存在的文件列表数据不需要自己再组装一个 response 结构,组件内部会根据顶层数据来组装:
[
{
name: 'My File',
ext: '.jpg',
fileType: 'image/jpg',
url: 'https://www.foo.bar/aaa.jpg',
previewUrl: '', // 可选
canRemove: true // 可选
}
]
Events
| name | arguments | description |
|----------|--------------|------------------|
| onChange | fileList | 在上传成功或文件移除后触发,返回文件队列,包括自己传入的fileList
|
| onCancel | file | 文件移除后触发,上传的文件和默认列表的文件格式会有所不同,文件格式参见下面的 fileList 格式|
| onfileuploaderror | File
, Error
| 文件上传失败 |
onChange 的 fileList 的枚举格式有如下几种
[
// 上传后的文件的格式, response 即服务器返回的值
{
id: 'xxxx', // 如果 response.content 中有提供
url: 'xxx', // 如果 response.content 中有提供
previewUrl: 'xxx', // 如果 response.content 中有提供
type: 'upload',
ext: file.ext,
name: file.name,
response: JSON.parse(file.response)
},
// 预览用文件的格式, `props.fileList` 相关, responce 即 `props.fileList` 里传入的格式。
{
type: 'list',
response: file
},
// 被删除的文件的格式
{
type: 'delete',
subType: 'list/upload', // 与上面两种类型对应,用于解析 response
response: file // 与上面的 subType 相对应
}
]
Other Events
| name | arguments | description |
|----------|--------------|------------------|
|onqueueuploadstart | | 队列上传开始 |
|onqueueuploadend | | 队列上传结束 |
|onqueuefileadded | File
| 队列添加了一个文件 |
|onqueuefilefiltered | File
, Error
| 队列过滤了一个文件 |
|onqueueerror | Error
| 队列错误 |
|onstatchange | Stat
| 文件统计发生变化 |
|onfileuploadstart | File
| 文件上传开始 |
|onfileuploadpreparing | FileRequest
| 文件上传准备时 |
|onfileuploadprepared | File
, FileRequest
| 文件上传准备好了 |
|onchunkuploadpreparing | ChunkRequest
| 分块上传准备时 |
|onchunkuploadcompleting | ChunkResponse
| 分块上传结束时 |
|onfileuploadprogress | File
, Progress
| 文件上传进度中 |
|onfileuploadend | File
| 文件上传结束 |
|onfileuploadcompleting | FileResponse
| 文件上传结束时 |
|onfileuploadsuccess | File
, FileResponse
| 文件上传成功 |
|onfileuploadcompleted | File
, Status
| 文件上传完成了 |
|onfilestatuschange | File
, Status
| 文件状态发生变化 |
|onfilecancel | File
| 文件退出 |
|onShowFile | File
, Url
, Current
| 自定义文件预览行为 |
具体配置信息见https://github.com/uxcore/uxcore-uploadcore/blob/master/README.md.