Uploader
单个文件异步上传组件,支持预览本地图片。
示例
<nut-uploader
url=""
:preview="true"
@start="uploadStart"
@progress="uploadProgress"
@success="uploadSuccess"
@failure="uploadFailure"
@preview="uploadPreview"
@afterChange="clearInput"
@showMsg="errTip"
>
</nut-uploader>
export default {
methods:{
uploadStart(){
console.log('start');
},
uploadProgress(file, loaded, total){
this.progress = '上传进度:'+loaded/total*100+'%';
},
uploadPreview(previewFile){
this.preview ='本地预览图:<img src="'+previewFile+'" alt=""/>';
},
uploadSuccess(file, responseTxt){
alert('上传成功!');
},
uploadFailure(file, responseTxt){
alert('上传失败!');
},
clearInput(input,event){
//change事件触发后,清空value值,选相同文件时可再次触发change事件
input.value = '';
},
//此方法用于接收和处理组件内部抛出的错误信息,如所选文件大小超过限制、文件类型不正确等等
errTip(msg){
alert(msg);
}
}
}
Props
参数 | 说明 | 类型 | 默认值 | 可选值 |
---|
url | 上传地址 | String | — | — |
preview | 是否开启预览 | Boolean | false | 预览的是本地图片 |
maxSize | 上传最大限制(字节) | Number | 5242880(5M) | |
acceptType | 支持上传的文件类型 | Array | ['image/jpeg', 'image/png', 'image/gif', 'image/bmp'] | |
attach | 附加上传的信息 | Object | {} | 需要随图片一起通过Request Payload发送的参数及值 |
Events
事件名 | 说明 | 回调参数 |
---|
start | 上传开始时触发 | — |
progress | 上传进度 | file:文件;loaded:已上传字节;total:总字节 |
preview | 预览回调 | previewFile:预览的文件内容(base64) |
success | 上传完成 | file:文件;responseTxt:服务端响应内容。注意:数据传输完毕(xhr.status === 200)即触发此函数,业务逻辑层面有没有上传成功,可能还需要根据responseTxt相关字段判断,具体由接口决定 |
failure | 上传进度 | file:文件;responseTxt:服务端响应内容。注意:数据传输层面失败(xhr.status !== 200)时触发此函数,业务逻辑层面的失败需要在success回调中根据相关字段判断,具体由接口决定 |
showMsg | 指定方法接收处理组件抛出的错误信息 | 唯一参数为提示信息内容 |
afterChange | 原生change事件触发后执行 | input:原生Input;event:事件对象 |