iview upload

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>文件上传</title>
    <script src="../../js/vue.js"></script>
    <script type="text/javascript" src="../../js/iview/dist/iview.min.js"></script>
    <link rel="stylesheet" href="../../js/iview/dist/styles/iview.css">
</head>
<body>

<div id="upload" style="margin:50px 200px;">
        <Upload
        multiple
        ref="upload"
        :before-upload="handleUpload"
        :show-upload-list="false"
        :on-success="uploadSuccess"
        action="//jsonplaceholder.typicode.com/posts/">
        <Button type="ghost" icon="ios-cloud-upload-outline">浏览</Button>
    </Upload>
    <div v-for="(item, index) in file">Upload file: {{ item.name }} 
        <a href="javascript:;"  @click="delectFile(item.keyID)">X</a>
        <Button style="margin-left:30px;" size="small" v-if="index === 0" type="primary" @click="upload" >上传</Button>
    </div>
</div>
<script>
    new Vue({
        el: '#upload',
        data: {
            file: [{
                name: 'aaa.jpg',
                type: 'image/jpeg',
                keyID: 123479
            },{
                name: 'bbb.jpg',
                type: 'image/jpeg',
                keyID: 987654
            }], // 总文件List
            uploadFile: [], // 需要上传的文件List
        },
        methods: {
            handleUpload (file) { // 保存需要上传的文件
                let keyID = Math.random().toString().substr(2);
                file['keyID'] = keyID;
                this.file.push(file);
                this.uploadFile.push(file)
                return false;
            },
            delectFile (keyID) { // 删除文件
                this.file = this.file.filter(item => {
                    return item.keyID != keyID
                })
                this.uploadFile = this.uploadFile.filter(item => {
                    return item.keyID != keyID
                })
            },
            upload () { // 上传文件
                if(this.uploadFile.length === 0 ) {
                    this.$Message.error('未选择上传文件') 
                    return false
                } 
                for (let i = 0; i < this.uploadFile.length; i++) {
                    let item = this.file[i]
                    this.$refs.upload.post(item);
                }
            },
            uploadSuccess (response, file, fileList) { // 文件上传回调 上传成功后删除待上传文件
                console.log(response) // 后端返回数据
                console.log(file)   // 当前上传文件
                console.log(fileList) // 整个input file 里的文件数组
            },
        },
    })
</script>

</body>
</html>

关于Iview组件Upload在封装之后父组件如何清除上传的文件

https://blog.youkuaiyun.com/qq_36189935/article/details/83617544

 

   <Upload
                ref="upload" name="upfile"
            :show-upload-list="false"
            :default-file-list="defaultList"
            :on-success="handleSuccess"
            :format="format"
            :max-size="size"
            :on-format-error="handleFormatError"
            :on-exceeded-size="handleMaxSize"
            :before-upload="handleBeforeUpload2"
            multiple
            type="drag"
            :action="http://192.168.127.128:8080/upload/qiniuUploadfile"
            style="display: inline-block;width:58px;">
        <div style="width: 58px;height:58px;line-height: 76px;">
            <Icon type="camera" size="40"></Icon>
        </div>
    </Upload>
    
    特别注意:name="upfile",也必须和后台的参数名一致:
     public Map qiniuUploadfile(@RequestParam(value = "upfile", required = true)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值