• vue实现多张图片上传与预览


     方法1:

    html:

    <div v-if='imgsback.length>0' class="flex">
        <div class="img-box" v-for="(item, i) in imgsback" :key='i' >
              <img class="img" :src="item" alt=""> <span @click="delimgback(i)"><i class="el-icon-delete"></i></span>
        </div>
    </div>
    <div class="img-file" v-if='imgsback.length < sizeback'>
    <input type="file" id='files' @change='fileChangeback($event)'>
            <label for="files"></label>
    </div>
    数据:
    data(){
       return{
       imgsback: [],      // 图片预览地址
         imgfilesback: [],  // 图片原文件,上传到后台的数据
         sizeback: 1 ,      // 限制上传数量
    方法methods:(每上传一张图片就调用一次接口将数据传给后台)
          /* 图片上传 */
                fileChangeback(e) {  // 加入图片
                    // 图片预览部分
                    var _this = this
                    var event = event || window.event;
                    var file = event.target.files
                    var leng=file.length;
                    for(var i=0;i<leng;i++){
                        var reader = new FileReader();    // 使用 FileReader 来获取图片路径及预览效果
                        _this.imgfilesback.push(file[i])
                        reader.readAsDataURL(file[i]); 
                        reader.onload =function(e){
                        _this.imgsback.push(e.target.result);   // base 64 图片地址形成预览                                 
                        };                 
                    }
                    // 图片上传给后台部分
                    var file = _this.imgfilesback[0];
                    let form new FormData(); 
                    form.append('imgFile',file);
                    
                    var vm = this;
                    _this.$axios({
                        url: '/tryOut/upload',
                        method: 'post',
                        data: form,
                        headers: {'content-Type':'multipart/form-data'}
                    }).then((re)=>{
                        console.log('re',re)
                        vm.imgurl = re.data.data.url
                        var imglist = vm.imglist;
                        imglist.push(re.data.data) 
                        vm.imglist = imglist;
                        console.log('vm.imglist',vm.imglist)
                    }).catch((err)=>{
                        console.log(err)
                    })
                },
    //删除图片的方法
    
    
    delimgback(i){
         this.imgfilesback.splice(i, 1)
         this.imgsback.splice(i, 1)
    },
     

     方法2methods(图片预览和图片数据上传是两个方法)

     /* 图片上传--预览 */
        fileChangeback(e) {  // 加入图片
            // 图片预览部分
            var vm = this
            var event = event || window.event;
            var file = event.target.files
            var leng=file.length;
            for(var i=0;i<leng;i++){
                var reader = new FileReader();    // 使用 FileReader 来获取图片路径及预览效果
                vm.imgfilesback.push(file[i])
                reader.readAsDataURL(file[i]); 
                reader.onload =function(e){
                  vm.imgsback.push(e.target.result);   // base 64 图片地址形成预览                                 
                };                 
            }
        },
        // 上传图片给后台
        updateImgToBack(){
              var url = '/zl/upload/' + this.checkedCatagoryId
              let form = new FormData(); 
              this.imgfilesback.forEach((item,index) =>{
                form.append('file',item);
              })
              var vm = this
              this.$axios.post(url,form).then(function(res){
                if(res.data.flag){
                  vm.$message({
                      message: res.data.message,
                      type: 'success'
                  });
                  vm.updataCategoryShow = false
                  vm.reload()
                }
              }).catch((err)=>{
                  console.log(err)
              })
        },
  • 相关阅读:
    防火墙实践
    提高工作效率的小技巧
    网络系统参数配置
    linux 文件截取
    python (1) 还不是大全的小问题
    iptables 命令记录
    网络常用端口
    HTTP时间指标
    错误集锦
    access数据库调用
  • 原文地址:https://www.cnblogs.com/meiyanstar/p/12870711.html
Copyright © 2020-2023  润新知