elementui el-upload 上传文件

 手动上传文件转Base64

<el-form-item label="上传文件">
          <el-upload
            class="upload-demo"
            drag
            action
            multiple
            :auto-upload="false"
            :file-list="fileUpList"
            :on-change="handleChange"
          >
            <i class="el-icon-upload"></i>
            <div class="el-upload__text">
              将文件拖到此处,或<em>点击上传</em>
            </div>
          </el-upload>
        </el-form-item>
  setup(props, { root, refs, emit }) {
    const data = reactive({
      infoForm: {
        base64Files: [],
      },
        
      // 上传文件参数
      fileUpList: [], // 上传的文件列表
    });


//上传多个
 const handleChange = (file, fileList) => {
      data.infoForm.base64Files = [];
      if (!/\.(xlsx|xls|XLSX|XLS|pdf)$/.test(file.name)) {
        root.$message({
          type: "warning",
          message: "上传文件只能为excel或者pdf文件!",
        });
        root.fileUpList = [];
        return false;
      }
     //输出base64 
      getBase64(file.raw).then((res) => {
        data.infoForm.base64Files.push({
          fileName: file.name,
          base64Str: res,
        });
      });
    };



 const getBase64 = (file) => {
      return new Promise((resolve, reject) => {
        ///FileReader类就是专门⽤来读⽂件的
        const reader = new FileReader();
        //开始读⽂件
        //readAsDataURL: dataurl它的本质就是图⽚的⼆进制数据,进⾏base64加密后形成的⼀个字符串,
        reader.readAsDataURL(file);
        // 成功和失败返回对应的信息,reader.result⼀个base64,可以直接使⽤
        reader.onload = () => resolve(reader.result);
        // 失败返回失败的信息
        reader.onerror = (error) => reject(error);
      });
    };

}


return {
      data,
      getBase64,
      handleChange,
    
    };

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑色咖啡 Ken

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值