el-upload的使用

本文详细介绍了在Vue项目中使用Element UI库的el-upload组件进行文件上传的步骤和技巧,包括上传前的预览、限制上传类型、进度条显示、文件上传成功后的回调处理等核心功能,并探讨了如何自定义上传样式和错误处理策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<template>
  <div class="download">
    <!--
    action:必选参数,上传的地址
    accept:接受上传的文件类型
    drag:是否启用拖拽上传
    disabled:是否禁用
    file-list:上传的文件列表
    multiple:是否支持多选文件
    list-type:文件列表的类型
    limit:最大允许上传个数
    show-file-list:是否显示已上传文件列表
    -->
    <el-upload
      class="upload-demo"
      drag
      multiple
      :limit="1"
      :accept="'.jpg,.png'"
      :file-list="fileList"
      action="https://jsonplaceholder.typicode.com/posts/"
      :on-exceed="handleExceed"
      :on-preview="handlePreview"
      :before-upload="beforeAvatarUpload"
      :on-change="handleChange"
      :on-success="handleAvatarSuccess"
      :on-error="handleAvatarError"
      :on-remove="handleRemove">
      <i class="el-icon-upload"></i>
      <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
      <div class="el-upload__tip" slot="tip">只能上传jpg/png文件,且不超过500kb</div>
    </el-upload>
  </div>
</template>

<script>
    export default {
        name: 'download',
        data() {
            return {
                fileList: []
            }
        },
        methods: {
            handleExceed(files, fileList) {
                this.$message.warning('文件超出个数限制时的钩子');
            },
            handlePreview(file) {
                this.$message.warning('点击文件列表中已上传的文件时的钩子');
            },
            beforeAvatarUpload(file) {
                this.$message.success('上传文件之前的钩子,参数为上传的文件,若返回 false 或者返回 Promise 且被 reject,则停止上传');
            },
            handleChange(file, fileList) {
                this.$message.success('文件状态改变时的钩子,添加文件、上传成功和上传失败时都会被调用');
            },
            handleAvatarSuccess(res, file, fileList) {
                this.$message.success('文件上传成功时的钩子:' + res);
            },
            handleAvatarError(err, file, fileList) {
                this.$message.success('文件上传失败时的钩子:' + err);
            },
            handleRemove(file, fileList) {
                this.$message.success('文件列表移除文件时的钩子');
            },
        }
    }
</script>

 

### 关于 `Element UI` 中 `el-upload` 组件的 `clearFiles` 方法 在 `Element Plus` 或者之前的 `Element UI` 版本中,当需要清空文件上传列表时可以使用 `el-upload` 提供的方法 `clearFiles()`。此方法用于清除当前已选中的所有文件[^1]。 #### 使用场景说明 假设存在一个需求,在特定条件下希望一次性移除所有的待上传文件项,此时就可以调用该组件实例上的 `clearFiles` 函数来实现这一目标。 #### 实现方式展示 下面给出一段简单的 Vue.js 示例代码片段,展示了如何通过按钮点击事件触发 `clearFiles` 来清理文件队列: ```vue <template> <div id="app"> <!-- 定义上传组件 --> <el-upload ref="uploadRef" action="/"> <button>选择文件</button> </el-upload> <!-- 清理文件列表按钮 --> <button @click="handleClear">清空文件列表</button> </div> </template> <script setup lang="ts"> import { ref } from &#39;vue&#39;; const uploadRef = ref(null); // 处理清空操作 function handleClear() { if (uploadRef.value !== null && typeof(uploadRef.value.clearFiles) === &#39;function&#39;) { uploadRef.value.clearFiles(); } } </script> ``` 上述例子中定义了一个名为 `uploadRef` 的模板引用对象,并将其绑定到 `<el-upload>` 上;接着创建了一个普通的 HTML 按钮用来触发展示清空逻辑。每当用户按下这个按钮的时候就会执行 `handleClear` 函数内部的操作,即调用了由 `ref` 获取到的实际 DOM 节点所对应的 `clearFiles` API 接口完成清除工作[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值