上传

通过单击或拖放上传文件。

文档示例中的上传入口和文件列表会采用纵向堆叠布局。

基本用法

使用 slot 自定义上传按钮类型和文本。设置limiton-exceed来限制允许的最大上传数量,并指定超过限制时的处理方法。另外,您可以中止删除 before-remove 挂钩中的文件。

图片附件更大的触发按钮、明确的数量限制和易读的文件列表
建议上传 500KB 以内的 JPG 或 PNG 图片,更适合移动网络环境。

覆盖上一个文件

设置 limiton-exceed 在选择新文件时自动替换以前的文件。

最多保留 1 个文件,新的文件会覆盖旧文件

用户头像

使用before-upload钩子来限制上传文件格式和大小。

照片墙

使用 list-type 更改 fileList 样式。

  • press delete to remove
  • press delete to remove
  • press delete to remove
  • press delete to remove
  • press delete to remove
  • press delete to remove
  • press delete to remove
  • press delete to remove

自定义缩略图

使用 scoped-slot 更改默认缩略图模板。

带缩略图的文件列表

支持上传 500KB 以内的 JPG 或 PNG 文件

文件列表控制

使用on-change钩子函数控制上传文件列表。

支持上传 500KB 以内的 JPG 或 PNG 文件

拖拽上传

您可以将文件拖到特定区域来上传。

将文件拖到此处,或 点击上传
支持上传 500KB 以内的 JPG 或 PNG 文件

上传目录2.13.1

通过 directory 属性启用文件夹上传。

启用后只能选择文件夹,选择文件夹后,文件夹内的文件会被扁平化。

将文件夹拖到此处,或 点击上传

手动上传

支持上传 500KB 以内的 JPG 或 PNG 文件

API

属性

名称描述类型默认
行动^(必填)请求网址。字符串
标题请求标头。对象
方法设置上传请求方式。字符串帖子
多个是否允许上传多个文件。布尔值
数据请求的附加选项。自 v2.3.13 起支持 Awaitable 数据和 Function对象 / 功能{}
名称上传文件的键名。字符串文件
带有凭证是否发送cookie。布尔值
显示文件列表是否显示上传的文件列表。布尔值真实
是否激活拖放模式。布尔值
接受接受的文件类型,在 thumbnail-mode === true 时将不起作用。字符串''
跨域本机属性 crossorigin枚举
预览点击上传文件时的钩子函数。功能
删除时删除文件时的钩子函数。功能
成功上传成功时的钩子函数。功能
错误发生某些错误时的钩子函数。功能
进行中发生某些进展时的钩子函数。功能
变化选择文件或上传文件成功或上传文件失败时的钩子函数。功能
超过超过限制时的钩子函数。功能
上传前上传前的钩子函数,以要上传的文件作为参数。如果返回false或者返回Promise然后被拒绝,上传将被中止。功能
删除前删除文件之前的钩子函数,以文件和文件列表作为参数。如果返回 false 或返回 Promise 然后被拒绝,删除将中止。功能
文件列表 / v-model:文件列表默认上传的文件。数组[]
列表类型文件列表的类型。枚举文字
自动上传是否自动上传文件。布尔值真实
http 请求覆盖默认的 xhr 行为,允许您实现自己的上传文件请求。功能ajaxUpload 参见
已禁用是否禁用上传。布尔值
限制允许的最大上传数量。数字
目录 2.13.1是否支持上传目录。启用后,只能选择文件夹,选择文件夹后,该文件夹内的文件将会被扁平化。布尔值

老虎机

名称描述类型
默认自定义默认内容。-
触发触发文件对话框的内容。-
提示提示内容。-
文件缩略图模板的内容。对象

暴露

名称描述类型
中止取消上传请求。当指定file时,中止对应的待上传;当未指定文件时,中止所有挂起的上传。功能
提交手动上传文件列表。功能
清除文件清除文件列表(before-upload 挂钩不支持此方法)。功能
处理开始手动选择文件。功能
处理删除手动删除该文件。 filerawFile 已合并。 rawFile 将在 v2.2.0 中删除。功能

类型声明

显示声明
ts
type UploadFiles = UploadFile[]

type UploadUserFile = Omit<UploadFile, 'status' | 'uid'> &
  Partial<Pick<UploadFile, 'status' | 'uid'>>

type UploadStatus = 'ready' | 'uploading' | 'success' | 'fail'

type Awaitable<T> = Promise<T> | T

type Mutable<T> = { -readonly [P in keyof T]: T[P] }

interface UploadFile {
  name: string
  percentage?: number
  status: UploadStatus
  size?: number
  response?: unknown
  uid: number
  url?: string
  raw?: UploadRawFile
}

interface UploadProgressEvent extends ProgressEvent {
  percent: number
}

interface UploadRawFile extends File {
  uid: number
  isDirectory?: boolean
}

interface UploadRequestOptions {
  action: string
  method: string
  data: Record<string, string | Blob | [string | Blob, string] | string[]>
  filename: string
  file: UploadRawFile
  headers: Headers | Record<string, string | number | null | undefined>
  onError: (evt: UploadAjaxError) => void
  onProgress: (evt: UploadProgressEvent) => void
  onSuccess: (response: any) => void
  withCredentials: boolean
}