vue中单个页面设置多个上传组件

文章描述了作者在项目中如何通过Element-UI的上传组件解决单页面多个图片上传的问题,通过判断`file.data`中的名称参数,实现对不同图片的单独处理并上传到服务器。
摘要由CSDN通过智能技术生成

简述:

        在最近的项目中,遇到单页面有多个上传图片的地方,如果每一个上传组件都写一个上传事件,在编码过程中又繁琐,后期维护也麻烦,最终在element-ui中找到了解决方法,在此记录一下。

html代码

<el-form-item label="背景图:">
     <el-upload
         class="avatar-uploader"
         action=""
         :show-file-list="false"
         list-type="picture"
         :http-request="Upload"
         :data="{name:'background_ImgUrl'}"
         :on-error="handleFailure"
         :before-upload="beforeAvatarUpload"
      >
         <div class="imgorigin" v-if="!form.background_ImgUrl">
             <i class="el-icon-plus first"></i>
             <span class="second"> 上传 </span>
         </div>
         <img
             v-if="form.background_ImgUrl"
             :src="form.background_ImgUrl"
             alt
             class="img avatar-uploader-icon"
          />

     </el-upload>
     <span class="logo">建议尺寸:1920*400</span>
</el-form-item>
<el-form-item label="头像:">
     <el-upload
         class="avatar-uploader"
         action=""
         :show-file-list="false"
         list-type="picture"
         :http-request="Upload"
         :data="{name:'avator_ImgUrl'}"
         :on-error="handleFailure"
         :before-upload="beforeAvatarUpload"
      >
         <div class="imgorigin" v-if="!form.background_ImgUrl">
             <i class="el-icon-plus first"></i>
             <span class="second"> 上传 </span>
         </div>
         <img
             v-if="form.background_ImgUrl"
             :src="form.background_ImgUrl"
             alt
             class="img avatar-uploader-icon"
          />

     </el-upload>
     <span class="logo">建议尺寸:1920*400</span>
</el-form-item>

图片上传,调用上传接口

注意:此处的file.data接收的参数,便是上面上传组件中定义的信息;通过拿到file.data中的数据,来判断是哪个上传弹框上传的数据,最后再根据业务需求,赋值给不同的变量

/**logo图片上传成功 */
  Upload(file) {
    console.log(file)
    var fileName = file.file.name;
    var formname = file.data.name;
    console.log('forname',formname)
    // 此处直接上传到阿里云
    上传接口.upload(file.file,fileName, (res) => {
      if (res.res.statusCode == "200") {
          switch(formname){
            case 'background_ImgUrl' :
              this.form.background_ImgUrl = 返回的图片路径
              break
            case 'avator_ImgUrl1':
              this.form.avatorValue_ImgUrl = 返回的图片路径
              break
          }
        this.$message({
          message: "上传成功!",
          type: "success",
        });
      } else {
        this.$message.warning("上传图片失败!");
      }
    });
  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值