vue + element 图片上传

久未见 提交于 2021-01-08 18:56:38

vue-cli3 + element 图片上传,图片上传前验证格式,自定义上传;

  1. el-upload组件
  <el-upload
        class="upload-demo"
        action="/uploadImg"
        :file-list="bankImgList"
        list-type="picture"
        :http-request="uploadAccountBank"
        :before-upload="beforeUpload">
        <el-button type="primary">点击上传</el-button>
   </el-upload>
  1. 验证图片格式
 //   上传图片前的验证只能是jpg格式的图片
   beforeUpload(file) {
      const isJpg = file.type === 'image/jpeg' ? true : file.type === 'image/jpg' ? true : false;
      if (!isJpg) {
        this.$message.error('请选择jpg或jpeg格式的文件!');
      }
      return isJpg;
    },
  1. 上传
async function uploadImage(a) {
  // 图片是否上传成功
  let uploadSuccess = false;
  // 图片id
  let id = 0;
  let fromData = new FormData();
  fromData.append('file', a.file);
  // htpp是封装后的axios
  await http({
    method: 'post',
    url: `/v1/uploadImg`,
    data: fromData,
    headers: {
      'Content-Type': 'multipart/form-data',
    },
  }).then((res) => {
    uploadSuccess = true;
    id = res.data.data.img_id;
  });
  if (uploadSuccess) {
    return id;
  }
}
  1. 使用(uploadImage返回一个promise)
   uploadAccountBank(a) {
      this.uploadImage(a).then((id) => {
        this.img_id = id;
      });
    },
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!