iview 上传文件 手动分部上传

template:

        <Upload class="upload-container"
            ref="upload"
            type="drag"
            :on-success="uploadSucess"
            :before-upload="uploadBefore"
            :on-error="uploadError"
            :on-progress="uploadPro"
            :show-upload-list="false"
            :data="{'env':this.targetEnv}"
            action="http://172.19.192.26:8084/api/envSync/envDiff/uploadEnvVersion">
            <div style="padding: 20px 0;">
                <Icon type="ios-cloud-upload" size="52" style="color: #3399ff"></Icon>
                <p>导入目标文件</p>
            </div>
        </Upload>
        <Button class="upload-todo" type="success" @click="upload">上传</Button>
复制代码

js:

uploadBefore(上传之前钩子可以获取到文件属性) 返回值为false或promise时就能阻断上传
按钮点击上传通过绑定ref去控制上传
export default {
        data(){
            return {
                files:null,//上传的文件
                fileName:'',
            }
        },
        methods:{
            uploadSucess(response) {//上传成功钩子
                if(response.msg == '上传成功') {
                    this.$Message.success('导入成功')
                }else {
                    this.$Message.error(response.msg)
                }
                this.files=null
                this.fileName = ''
            },
            uploadError() {//失败
                this.$Message.error('导入失败')
            },
            uploadBefore(file) {//上传前钩子
                this.files=file
                this.fileName = file.name
                return false
                // return new Promise((resolve,reject) => {
                //     this.$Modal.confirm({
                //         title:'确认窗口',
                //         content:`<p>目标环境:${this.targetEnv}</p><p>文件名:${file.name}</p>`,
                //         onOk:() => {
                //             resolve()
                //         },
                //         onCancel:() => {
                //             reject()
                //         }
                //     })
                // })
            },
            upload() {//点击按钮上传
                if(this.files == null) {
                    this.$Message.error('请导入文件!')
                    return
                }
                this.$Modal.confirm({
                    title:'确认窗口',
                    content:`<p>文件名:${this.fileName}</p>`,
                    onOk:() => {
                        this.$refs.upload.post(this.files);
                    },
                    onCancel:() => {
                    }
                    
                })
            },
        }
    }
复制代码

转载于:https://juejin.im/post/5cd2a791e51d453acc601603

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值