前期项目中使用了第三方的开源 UI 框架 View UI(前期叫 iView,现在也叫 「view design」)。总体感觉该 UI 框架还是比较不错的。但是现在 View UI 商业化了,部分功能需要付费才能使用。近期做的功能模块需要上传文件,就想到 UI 中的 Upload 上传 模块,思前想后决定用它来实现文件上传。
之所以选用 UI 自身的文件上传,主要是因为其可配置,还有上传进度条。本次文件上传因为要涉及到大文件上传,上传等待时间有点长,为了实时显示上传的进度,故采用 Upload 上传,其自身带有可配置的上传进度条以及上传文件列表,正好可以满足我的需求。
此次文件上传需要直传递(OSS)到阿里云服务器。但是官方给的实例中,没有涉及到 OSS 文件上传的相关配置,为了达到实现 OSS 直传的目的,现借助已有案例 Demo 来进一步的改写,实现 upload 上传文件到阿里云服务器。
属性 | 说明 | 类型 | 默认值 |
---|---|---|---|
action | 上传的地址,必填 | String | - |
disabled | 是否禁用 | Boolean | false |
data | 上传时附带的额外参数 | Object | - |
name | 上传的文件字段名 | String | file |
show-upload-list | 是否显示已上传文件列表 | Boolean | true |
type | 上传控件的类型,可选值为 select (点击选择),drag (支持拖拽) | String | select |
accept | 接受上传的文件类型 | String | - |
format | 支持的文件类型,与 accept 不同的是,format 是识别文件的后缀名,accept 为 input 标签原生的 accept 属性,会在选择文件时过滤,可以两者结合使用 | Array | [] |
before-upload | 上传文件之前的钩子,参数为上传的文件,若返回 false 或者 Promise 则停止上传 | Function | - |
on-success | 文件上传成功时的钩子,返回字段为 response, file, fileList | Function | - |
on-error | 文件上传失败时的钩子,返回字段为 error, file, fileList | Function | - |
on-remove | 文件列表移除文件时的钩子,返回字段为 file, fileList | Function | - |
on-format-error | 文件格式验证失败时的钩子,返回字段为 file, fileList | Function | - |
on-exceeded-size | 文件超出指定大小限制时的钩子,返回字段为 file, fileList | Function | - |
default-file-list | 默认已上传的文件列表 | Array | [{name: 'img1.jpg',url: 'http://www.xxx.com/img1.jpg'}] |
提出全局公用的属性和方法。