首页 > 其他 > 详细

el-upload 图片转base4

时间:2021-01-12 20:27:36      阅读:21      评论:0      收藏:0      [点我收藏+]

 

    /**
     * 将上传的图片文件转为base64格式
     * @param {file} file 
     */
    Vue.prototype._getBase64 = function (file) {
      return new Promise((resolve, reject) => {
        const reader = new FileReader()
        let imgResult = ‘‘
        reader.readAsDataURL(file)
        reader.onload = () => {
          imgResult = reader.result
        }
        reader.onerror = error => reject(error)
        reader.onloadend = () => resolve(imgResult)
      })
    }

 

<el-form-item label="图标" prop="imageUrl">
                  <el-upload
                    class="avatar-uploader"
                    action="#"
                    :auto-upload="false"
                    :show-file-list="false"
                    :on-change="getAvatar"
                  >
                    <img
                      v-if="floatSettingRuleForm.imageUrl"
                      :src="computedImgUrl"
                      class="avatar"
                    />
                    <i v-else class="el-icon-plus avatar-uploader-icon"></i>
                    <div slot="tip" class="el-upload__tip">
                      <p>支持扩展名:jpg/jpeg/png</p>
                      <p>建议图片大小:192*192</p>
                    </div>
                  </el-upload>
                </el-form-item>

 

 async getAvatar(file) {
      let suffix = file.name.substring(file.name.lastIndexOf(".") + 1); //获取文件后缀名
      // accept=".jpg,.jpeg,.png"
      if (!["jpg", "png", "jpeg"].includes(suffix))
        return this.$message.error("请上传jpg/jpeg/png后缀名图片");
      const [error, res] = await this.errorCaptured(this._getBase64, file.raw);
      if (error) return;
      const params = { type: "1", img: res };
      this._floatUpload(params);
    },

 

 

    // 上传图片接口
    async _floatUpload(params) {
      const [error, res] = await this.errorCaptured(
        this.$api.floatUpload,
        params
      );
      if (error) return;
      // 拿到后台返回的图片相对地址,然后发出请求图片链接的请求
      const imgUrl = res.data;
      this.floatSettingRuleForm.imageUrl = imgUrl;
    },

 

    .avatar-uploader {
      border-radius: 6px;
      cursor: pointer;
      position: relative;
      overflow: hidden;
    }
    /deep/.el-upload--text {
      border: 1px dashed #d9d9d9;
      width: 192px;
      height: 192px;
    }
    /deep/ .el-upload--text:hover {
      border-color: #409eff;
    }
    .avatar-uploader-icon {
      font-size: 28px;
      color: #8c939d;
      width: 192px;
      height: 192px;
      line-height: 192px;
      text-align: center;
    }
    .avatar {
      width: 192px;
      height: 192px;
      display: block;
    }
    .el-upload__tip {
      p {
        font-size: 12px;
        line-height: 24px;
      }
    }

 

el-upload 图片转base4

原文:https://www.cnblogs.com/xiaoliziaaa/p/14267521.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!