el-upload图片上传,删除

el-upload是ElementUI中的一个组件,可以用来实现图片上传功能。下面是一个基本的el-upload的示例代码:

<template>
  <el-upload
    class="upload-demo"
    action="/upload"
    :show-file-list="false"
    :on-success="handleSuccess"
    :before-upload="beforeUpload">
    <el-button size="small" type="primary">点击上传</el-button>
    <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
  </el-upload>
</template>

<script>
export default {
  methods: {
    handleSuccess(response) {
      this.imageUrl = response.url;
    },
    beforeUpload(file) {
      const isJPG = file.type === 'image/jpeg' || file.type === 'image/png';
      const isLt500KB = file.size / 1024 < 500;
      if (!isJPG) {
        this.$message.error('上传的图片只能是 JPG/PNG 格式!');
      }
      if (!isLt500KB) {
        this.$message.error('上传的图片大小不能超过 500KB!');
      }
      return isJPG && isLt500KB;
    }
  }
};
</script>

上面的代码实现了一个上传图片的功能,点击“点击上传”按钮,可以选择需要上传的图片,然后会执行beforeUpload函数做图片格式和大小的检查,如果通过检查,会上传图片到服务端,上传成功后会自动调用handleSuccess函数处理返回的图片URL。其中,action属性指定了上传的URL,show-file-list属性表示是否显示已上传的图片列表。

如果要实现删除图片的功能,可以通过v-if指令控制上传按钮和已上传的图片的显示和隐藏。删除图片时,只需要清空imageUrl即可。下面是示例代码:

<template>
  <div>
    <el-upload
      class="upload-demo"
      action="/upload"
      :show-file-list="false"
      :on-success="handleSuccess"
      :before-upload="beforeUpload"
      v-if="!imageUrl">
      <el-button size="small" type="primary">点击上传</el-button>
      <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
    </el-upload>
    <img :src="imageUrl" v-if="imageUrl">
    <el-button v-if="imageUrl" size="small" type="danger" @click="handleDelete">删除图片</el-button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      imageUrl: ''
    };
  },
  methods: {
    handleSuccess(response) {
      this.imageUrl = response.url;
    },
    beforeUpload(file) {
      const isJPG = file.type === 'image/jpeg' || file.type === 'image/png';
      const isLt500KB = file.size / 1024 < 500;
      if (!isJPG) {
        this.$message.error('上传的图片只能是 JPG/PNG 格式!');
      }
      if (!isLt500KB) {
        this.$message.error('上传的图片大小不能超过 500KB!');
      }
      return isJPG && isLt500KB;
    },
    handleDelete() {
      this.imageUrl = '';
    }
  }
};
</script>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值