# vue ivew 多图上传,查看,删除

vue ivew 多图上传,查看,删除

知识点

FileReader

template

<div class="container" v-for="(item, index) in imgList :key="index">

    <img :id="item" :src="urlArr[index]">

</div>


<Upload 
    multiple 
    type='drag' 
    :format="['png','jpg','jpeg']" 
    :before-upload="imgUpload">
    
    <div>
        <Icon type="ios-add" size="200"></Icon>
    </div>
    
</Upload>

<script>

export default {
    name: 'upload img',
    data () {
        return {
            i: 0,
            imgList: [],
            urrArr: []
        }
    },
    methods: {
        imgUpload (file) {
        
            // 生成随机名称
            const randomS = Math.random().toString(36).substr(2)
            // 给图片命名,多张图片要注意图片不能重名
            this.imgList.push('img' + randomS)
            
            // 展示图片
            this.showImg (file, this.imgList[this.i])
            // 这里会使用一个i作为指针,来指定我们当前操作的那张图片,没执行一次+1
            this.i++
        },
        // 展示图片
        showImg (file, fileId) {
            // 获取图片元素
            const img = document.querySelector('#' + fileId)
            
            // 展示图片
            const render = new FileReader()
            
            render.onload = (event) => {
                img.src = event.srcElment.result
                this.urlArr.push(event.srcElment.result)
            }
            
            // 将图片复制进入,request到后端
            this.imgArr.push(file)
            
        },
        deleteImg (index) {
            // 注意:删除需要删掉imgArr, urlArr
            this.imgArr.splice(index, 1)
            this.urlArr.splice(index, 1)
            
            //没删除一次,指针-1
            this.i--
        }
    
    }
}

</script>

属性 说明 类型
before-upload 上传文件之前的钩子,参数为上传的文件,若返回 false 或者 Promise 则停止上传 function

上面为大概思路

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。