zoukankan      html  css  js  c++  java
  • el-upload 图片转base4

        /**
         * 将上传的图片文件转为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;
        },
     computed: {
        computedImgUrl() {
          // return window.location.origin + this.floatSettingRuleForm.imageUrl;
    
          return (
            window.location.origin +
            "/social-share-manager/float_setting/getImg?token=" +
            this.floatSettingRuleForm.imageUrl
    
           
          );
        },
      },
    
    
    /data里面数据/
    floatSettingRuleForm: {
            id: "",
            cityCode: "",
            cityName: "",
            imageUrl: "", //imageUrl
            appName: "",
            androidPackageName: "",
            iosLinkUrl: "",
            iosSchema: "",
          },
        .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;
          }
        }
  • 相关阅读:
    团队博客-会议之初
    5.2 个人作业2
    5.1 如何利用Intellij Idea搭建python编译运行环境
    4.27 python神器——Anaconda的安装与优化配置
    4.26 AlertDialog(对话框)详解
    4.25 xmapp启动mysql出现Error: MySQL shutdown unexpectedly.
    4.24 Android Studio下应用签名的方法以及获取 MD5、SHA1(签名)、SHA256 值
    4.23 2020.2新版本idea创建javaEE web文件
    4.22 Android studio 通过获取验证码用户登陆成功
    4.21 Android 记住密码和自动登录界面的实现(SharedPreferences 的用法)
  • 原文地址:https://www.cnblogs.com/xiaoliziaaa/p/14267521.html
Copyright © 2011-2022 走看看