vue+element-ui上传图片,并向后台传递参数

由于项目需要个人签章功能,就是把个人签名以图片的形式显示,需求如下:
vue+element-ui上传图片,并向后台传递参数_第1张图片
说明:
(1)后台接口地址以及参数
officeLawFile/uploadSignImg file【文件格式】 userId【当前登录人的userid】

html代码:

<div class="container">
      <div class="singnImage">
        <el-upload
          class="avatar-uploader"
          :action="baseURL + '/officeLawFile/uploadSignImg'"
          :data="fileData"
          :show-file-list="false"
          :on-success="handleAvatarSuccess"
          :before-upload="beforeAvatarUpload"
        >
          <img v-if="imageUrl" :src="imageUrl" class="avatar" />
          <i v-else class="el-icon-plus avatar-uploader-icon"></i>
          <div>点击上传个人签章</div>
        </el-upload>
      </div>
      <el-button type="primary">保存</el-button>
      <el-button type="primary">取消</el-button>
    </div>

action :必选参数,上传的地址
data :上传时附带的额外参数

js代码:

 data() {
     
    return {
     
      baseURL: window.uploadUrl,
      imageUrl: "",
      fileData: {
     
         userId: localStorage.getItem("userInfo") ? JSON.parse(localStorage.getItem("userInfo")).id : '',
      }
    };
  },
  computed: {
     },
  methods: {
     
    handleAvatarSuccess(res, file) {
     
      this.imageUrl = URL.createObjectURL(file.raw);
    },
    beforeAvatarUpload(file) {
     
      const isJPG = file.type === "image/png";
      const isLt2M = file.size / 1024 / 1024 < 5;

      if (!isJPG) {
     
        this.$message.error("上传头像图片只能是 PNG 格式!");
      }
      if (!isLt2M) {
     
        this.$message.error("上传头像图片大小不能超过 5MB!");
      }
      return isJPG && isLt2M;
    }
  }

baseURL: window.uploadUrl, // 地址
fileData: {
userId: localStorage.getItem(“userInfo”) ? JSON.parse(localStorage.getItem(“userInfo”)).id : ‘’,
} // 给后台传递的参数userId
遇到问题:
(1)报错
因为在这里插入图片描述
因为链接后台的地址没有配置,向外暴露一个,解决
vue+element-ui上传图片,并向后台传递参数_第2张图片

你可能感兴趣的:(vue)