Vue触发input选取文件点击事件

CSS

 

.upload-btn-box {
    margin-bottom: 10px;
    button {
        margin-right: 10px;
    }
    input[type=file] {
        display: none;
    }
}

 

 

 

HTML

<div class="upload-btn-box">
  <Button @click="choiceImg" icon="ios-cloud-upload-outline" type="primary">点击上传</Button>
    <input ref="filElem" type="file" class="upload-file" @change="getFile">
</div>

Script

choiceImg(){
    this.$refs.filElem.dispatchEvent(new MouseEvent('click')) 
},
getFile(){
            var that = this;
            const inputFile = this.$refs.filElem.files[0];
            if(inputFile){
                if(inputFile.type !== 'image/jpeg' && inputFile.type !== 'image/png' && inputFile.type !== 'image/gif'){
                    alert('不是有效的图片文件!');
                    return;
                }
                this.imgInfo = Object.assign({}, this.imgInfo, {
                    name: inputFile.name,
                    size: inputFile.size,
                    lastModifiedDate: inputFile.lastModifiedDate.toLocaleString()
                })
                const reader = new FileReader();
                reader.readAsDataURL(inputFile);
                reader.onload = function (e) {
                    that.imgSrc = this.result;
                }
            } else {
                return;
            }
        }

 

 

posted @ 2018-11-14 14:16  LaLaLa_heng  阅读(23010)  评论(4编辑  收藏  举报