element-plus upload上传

本文详细介绍了如何在Vue3项目中使用ElementPlus2.4.3版本的上传组件,包括FormData的使用、自定义上传方法和处理上传进度。还展示了如何调用后台API进行文件上传操作。

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

vue3

element-plus 2.4.3 

<script>
const submitUpload = () => {
  // 单文件
  proxy.$refs["uploadRef"].submit();
}

const uploadFile = (options) => {
  let formData = new FormData();
  formData.append("file", options.file)
  return uploadFileWithParam(formData, (e) => {
    const percent = parseInt(
        ((e.loaded / e.total) * 100) | 0,
        10
    )
    options.onProgress({percent})
  })
}

const onclickClear = () => {
  fileList.value = []
}

const onSuccess = (response, file, fileList) => {
};

const onError = (response, file, fileList) => {
};
</script>

<template>
  <div>
    <el-upload
        ref="uploadRef"
        drag
        multiple
        accept=".txt,.zip"
        action="#"
        v-model:file-list="fileList"
        :auto-upload="false"
        :on-success="onSuccess"
        :on-error="onError"
        :http-request="uploadFile"
    >
      <el-icon class="el-icon--upload">
        <upload-filled/>
      </el-icon>
      <div class="el-upload__text">
        Drop file here or <em>click to upload</em>
      </div>

      <template #tip>
        <div class="el-upload__tip">
          提示信息
        </div>
      </template>
    </el-upload>

    <el-button type="success" @click="submitUpload">
      上传服务器
    </el-button>
    <el-button type="danger" @click="onclickClear">
      清空列表
    </el-button>
  </div>
</template>

<style scoped lang="scss">
:deep(.el-upload-list__item) {
  margin-bottom: 10px;
}

:deep(.el-upload-list__item .el-progress) {
  top: 10px;
}
</style>

api接口 

export function uploadFileWithParam(data, onUploadProgress) {
    return request({
        url: '/data/upload',
        headers: {
            repeatSubmit: false
        },
        method: 'post',
        data: data,
        timeout: 1000 * 60 * 60,
        onUploadProgress
    })
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值