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>
相关文章
|
前端开发 JavaScript 安全
【前端相关】elementui使用el-upload组件实现自定义上传
【前端相关】elementui使用el-upload组件实现自定义上传
3496 0
|
JavaScript 前端开发
el-upload上传文件
el-upload上传文件
1476 0
|
数据可视化 前端开发 JavaScript
vue3+threejs可视化项目——引入threejs加载钢铁侠模型(第二步)
vue3+threejs可视化项目——引入threejs加载钢铁侠模型(第二步)
1605 3
el-tree技巧之只能选中最后一层级的子节点以及查找树结构第一个无子节点的叶节点
el-tree技巧之只能选中最后一层级的子节点以及查找树结构第一个无子节点的叶节点
|
存储 前端开发 Java
Element el-upload 文件上传/图片上传/拖拽上传/附带参数/附带请求头部详解
文目录 1. 前言 2. 基本用法 2.1 前端部分 2.2 后端部分 2.3 获取后端返回信息 3. 外观功能介绍 3.1 拖拽上传 3.2 显示图片 3.3 设置文件列表样式 3.4 显示提示信息 4. 事件功能介绍 4.1 限制上传文件数量 4.2 限制上传文件类型和大小 4.3 移除文件处理 4.4 手动上传 5. 附带参数 6. 附带请求头部 7. 小结
8044 0
|
前端开发 JavaScript UED
深入理解 JavaScript 同步和异步,让网页灵动起来!
深入理解 JavaScript 同步和异步,让网页灵动起来!
|
资源调度 JavaScript 前端开发
|
JavaScript 数据安全/隐私保护
如何在Vue组件中调用封装好的外部js文件方法
这篇文章介绍了如何在Vue组件中调用封装好的外部js文件方法,包括在Vue项目中全局引入外部js文件,并在组件中通过this.$myMethod()的方式调用外部js文件中定义的方法。
如何在Vue组件中调用封装好的外部js文件方法
|
前端开发
el-upload上传一张图片后显示缩略图并隐藏添加图片按钮
el-upload上传一张图片后显示缩略图并隐藏添加图片按钮
2005 1