在ElementUi中使用原生多选图片上传

通过el-botton 传递事件给隐藏的input

 <el-button size="small" type="primary" @click="handleChange(false)">选择上传文件</el-button>


<input v-show="false" ref="fileRef" multiple="multiple"  type="file" 
accept="image/*"
@change="fileChange" >
// 创建一个点击事件
 handleChange(e) {
      this.type = e;
      this.$refs.fileRef.dispatchEvent(new MouseEvent('click'));
 },

//上传事件
//imgUpload 图片上传接口
//photoMasterImg 主图接口
//photoAlbum  相册接口
async upLoader(file) {
        let subFunc = null;
        let options = null;
        const arr = [];
        for (let i = 0; i < file.length; i++) {
            const formData = new FormData();
            formData.append('file', file[i]);
            const data = formData;
            arr.push(imgUpload(data));
        }
        Promise.all(arr).then(async (data) => {
            const file = data.map((e) => {
                return {
                    businessId: this.id,
                    fileName: e.data.fileName,
                    fileUrl: e.data.completeFileOssPath
                };
            });
            if (!this.type) {
                subFunc = photoMasterImg;
                options = file[0];
            } else {
                subFunc = photoAlbum;
                options = file;
            }
            const res1 = await subFunc(options);
            if (res1.code === 200) this.getPhotoAll();
        });
    }



//事件完成
fileChange(e) {
      try {
        const files = e.target.files || e.dataTransfer.files;
        this.upLoader(files);
      } catch (error) {
        this.$message({
          message: '上传失败',
          type: 'error'
        });
      }
},

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值