el-upload图片上传,删除

简介: el-upload是ElementUI中的一个组件,可以用来实现图片上传功能。下面是一个基本的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>
相关文章
|
8月前
|
前端开发 JavaScript 安全
【前端相关】elementui使用el-upload组件实现自定义上传
【前端相关】elementui使用el-upload组件实现自定义上传
411 0
|
1月前
elementUI el-upload上传组件实战使用
elementUI el-upload上传组件实战使用
|
7月前
LayUI upload上传组件上传文件的两种方式
LayUI upload上传组件上传文件的两种方式
477 0
|
前端开发 JavaScript
使用Element-UI中的el-upload实现文件的上传demo(亲测有用)
使用Element-UI中的el-upload实现文件的上传demo(亲测有用)
|
前端开发 Java 程序员
el-upload上传组件accept属性限制文件类型(案例详解)
案例分享el-upload上传组件accept属性!欢迎留言沟通交流!
3396 0
el-upload上传组件accept属性限制文件类型(案例详解)
|
JavaScript 前端开发
el-upload上传文件
el-upload上传文件
964 0
|
存储 前端开发 Java
Element-UI中el-upload上传组件(demo详解)
案例详解Element-UI中el-upload上传组件,一起打卡学习吧!
1406 0
Element-UI中el-upload上传组件(demo详解)
|
11月前
|
前端开发
Vue3 element-ui el-upload(上传组件) 上传图片后,隐藏上传按钮
Vue3 element-ui el-upload(上传组件) 上传图片后,隐藏上传按钮
352 0