-
布局
-
表单
-
通知
-
导航
-
其它
上传文件 KLUpload
基本形式
- 目前该上传组件采用FormData向后台提交文件数据
- 组件上传成功依赖的返回数据结构为
{name: 'xxx', url: 'xxx'}
, 通常和后端接口不一致,可以通过配置onLoadInterceptor
做一层数据转换 - 可通过file-list指定初始值,格式为[Object], 其中Object结构如下{name: '文件名称',url: '文件的路径',flag: '0, 新增的文件; 1, 已经上传未被删除的文件,2,已经上传被删除的文件'}
特别注意: 例子中使用的url为私人服务器, 请勿直接使用, 请使用自己后台的上传接口
|
|
文件类型限制
配置accept属性为文件后缀或MIME_TYPE
|
行布局
|
|
只读模式
|
|
指定宽高或宽高比
只作用于图片
|
文件上传前的校验(文件格式限制为图片)
|
|
文件删除前的确认
|
|
选择文件后不上传
- 该模式下,必须初始化formData属性为new FormData()默认值
|
|
API
KLUpload
KLUpload
Param | Type | Default | Description |
---|---|---|---|
[options.data] | object |
= 绑定属性 | |
[options.data.action] | string |
=> 必选,上传地址 | |
[options.data.file-list] | array |
=> 上传的文件列表, 可以指定初始值,代表已经上传的文件,见demo,每次操作文件后, 都可以通过该参数绑定的变量,得到最新的文件列表,其中每个文件项包含下面的字段: name: 文件名称 url: 文件的路径 flag: 0, 新增的文件; 1, 已经上传未被删除的文件,2,已经上传被删除的文件 | |
[options.data.name] | string |
"file" |
=> 可选,上传的文件字段名, 默认为’file’ |
[options.data.headers] | object |
=> 可选,设置上传的请求头部 | |
[options.data.with-credentials] | object |
false |
=> 可选,支持发送 cookie 凭证信息, 默认false |
[options.data.multiple] | boolean |
false |
=> 可选,是否支持多选, 可选值true/false,默认false单选 |
[options.data.data] | object |
=> 可选,上传时附带的额外参数 | |
[options.data.drag] | boolean |
false |
=> 可选,是否支持拖拽上传,可选值true/false,默认false不支持拖拽 |
[options.data.accept] | string |
"*" |
=> 可选,接受上传的文件类型, 同input的accept属性 |
[options.data.list-type] | string |
"list" |
=> 可选,上传组件的展示形式, 可选值list/card,默认list |
[options.data.num-min] | number |
-Infinity |
=> 可选,指定的至少上传的文件个数,默认无限制 |
[options.data.num-max] | number |
Infinity |
=> 可选,最大允许上传文件的个数,默认无限制 |
[options.data.num-perline] | number |
=> 可选,每行展示的文件个数,对于列表形式,默认无限制,根据父容器自动折行; 对于表单形式,默认每行展示5个 | |
[options.data.max-size] | string |
"1GB" |
=> 可选,上传文件大小的最大允许值, 支持数值大小以及KB,MB,GB为单元的指定 |
[options.data.readonly] | boolean |
false |
=> 可选,是否开启预览模式,可选值true/false,true预览模式,只能预览和下载图片, 默认false,允许上传和删除图片 |
[options.data.hideTip] | boolean |
false |
=> 是否显示校验错误信息,默认false显示 |
[options.data.image-width] | number |
=> 可选,指定上传图片文件的宽度, 值为数值,单位为px,如800 | |
[options.data.image-height] | number |
=> 可选,指定上传图片文件的高度, 值为数值,单位为px, 如600 | |
[options.data.image-scale] | string |
=> 可选,指定上传图片文件的宽高比, 值为冒号分隔的宽高比例字符串,如’4:3’ | |
[options.data.class] | string |
=> 可选,组件最外层包裹元素样式扩展 | |
[options.data.onLoadInterceptor] | function |
NULL |
=> 可选,Http status介于200-300时触发,用于对响应数据拦截,response.code校验决定成功或失败,以及数据转换,详见demo基本形式 |
[options.data.onErrorInterceptor] | function |
NULL |
=> 可选,Http status非200-300时触发,http状态失败的钩子 |
[options.data.before-upload] | function |
=> 可选,上传文件前的钩子,参数为上传的文件,返回同步校验信息或 Promise 对象,最终返回文件的字符串校验信息,如果为空,则继续进行文件的后续校验, 如果非空,则提示校验信息,并停止上传 | |
[options.data.before-remove] | function |
=> 可选,删除文件时的钩子,参数结构同remove回调函数,返回同步删除确认信息或者 Promise 对象,最终返回的确认信息,如果为false,则停止删除;否则删除改文件 | |
[options.data.autoUpload] | boolean |
false |
=> 可选,选择文件后是否立即上传,如果设置为false, 新增文件的数据会维护在formData属性中 |
[options.data.formData] | FormData |
FormData |
=> 可选,在autoUpload为false(非自动上传)模式下,新增文件的formData格式数据。 注:此处使用时,必须在外部初始化formData默认值,否则无法实现三层的双向数据绑定 |
preview 上传预览点击事件Event
Param | Type | Description |
---|---|---|
sender | object |
当前上传文件的实例 |
file | object |
当前上传的文件 |
fileList | array |
所有展示的文件列表 |
status | string |
上传的状态 |
progress | string |
上传的进度 |
success 文件上传成功回调函数Event
Param | Type | Description |
---|---|---|
sender | object |
当前上传文件的实例 |
file | object |
当前上传的文件 |
fileList | array |
所有展示的文件列表 |
status | string |
上传的状态 |
progress | string |
上传的进度 |
progress 文件上传进度回调函数Event
Param | Type | Description |
---|---|---|
sender | object |
当前上传文件的实例 |
file | object |
当前上传的文件 |
fileList | array |
所有展示的文件列表 |
status | string |
上传的状态 |
progress | string |
上传的进度 |
error 文件上传失败回调函数Event
Param | Type | Description |
---|---|---|
sender | object |
当前上传文件的实例 |
file | object |
当前上传的文件 |
fileList | array |
所有展示的文件列表 |
status | string |
上传的状态 |
progress | string |
上传的进度 |
remove 上传文件删除回调函数Event
Param | Type | Description |
---|---|---|
sender | object |
当前上传文件的实例 |
file | object |
当前上传的文件 |
fileList | array |
所有展示的文件列表 |
status | string |
上传的状态 |
progress | string |
上传的进度 |
想让文档更完善?
来 GitHub 提个 PR 吧!