Skip to content

FilesUpload 文件上传

FilesUpload 是一个功能完善的文件上传组件,支持多文件选择、文件类型限制、大小校验。适用于表单文件上传,和其他组件库相比,他更符合高度自定义的业务场景。

基础用法

文件限制

Props

属性名说明类型默认值
v-model文件列表绑定值FilesUploadItem[][]
multiple是否支持多选文件booleanfalse
accept接受上传的文件类型,如 ['.jpg', '.png', '.pdf']string[][]
max-file-length最大上传文件数量number10
file-size-limit单个文件大小限制,单位 MBnumber5
disabled是否禁用booleanfalse

Events

事件名说明类型
upload-before上传前的钩子函数,可用于过滤或处理文件(fileList: File[]) => Promise<File[]> | File[]
upload自定义上传函数(fileUploadItems: FilesUploadItem[]) => Promise<any>
update:modelValue文件列表变化时触发(fileList: FilesUploadItem[]) => void
error-message上传出错时触发(params: FilesUploadErrorParams) => void

Slots

插槽名说明
default自定义上传触发区域内容

类型定义

可以直接导入

typescript
import {
  FilesUploadItem,
  FilesUploadErrorParams,
  FilesUploadErrorType,
} from 'element-ai-vue'

FilesUploadItem

typescript
interface FilesUploadItem {
  elementFile?: File // 原始 File 对象
  fileSize?: number // 文件大小(字节)
  fileId: string // 文件唯一标识
  fileName: string // 文件名
  fileUrl: string // 文件 URL
  fileExt: string // 文件扩展名
  uploadingStatus: 'progress' | 'success' | 'error' // 上传状态
  progress?: number // 上传进度(0-100)
}

FilesUploadErrorParams

typescript
type FilesUploadErrorParams = {
  type: FilesUploadErrorType // 错误类型
  message: string // 错误信息
}

FilesUploadErrorType

typescript
type FilesUploadErrorType =
  | 'EXCEED_MAX_FILE_LENGTH' // 超出最大文件数量
  | 'EXCEED_FILE_SIZE_LIMIT' // 超出文件大小限制
  | 'INVALID_FILE_TYPE' // 非法的文件类型