Upload 上传

通过点击或拖拽上传文件。

基础用法

通过 slot 自定义上传按钮类型和文字。 设置 limiton-exceed 来限制允许上传的最大数量,并指定超过限制时的方法。 此外,您可以在 before-remove 钩子中取消移除文件。

jpg/png 文件,且大小不超过 500KB。

覆盖前一个文件

设置 limiton-exceed,当选择一个新文件时,自动替换前一个文件。

限制 1 个文件,新文件将覆盖旧文件

    用户头像

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

    照片墙

    使用 list-type 属性来改变文件列表的样式。

    • 按 delete 键可删除
    • 按 delete 键可删除
    • 按 delete 键可删除
    • 按 delete 键可删除
    • 按 delete 键可删除
    • 按 delete 键可删除
    • 按 delete 键可删除
    • 按 delete 键可删除

    自定义缩略图

    使用 scoped-slot 去自定义缩略图模版。

    带有缩略图的文件列表

    jpg/png 文件,且大小不超过 500kb

    手动控制文件列表

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

    jpg/png 文件,且大小不超过 500kb

    拖拽上传

    您可以将文件拖拽到特定区域以进行上传。

    将文件拖到此处,或 点击上传
    jpg/png 文件,且大小不超过 500kb

      上传目录 2.13.1

      通过 directory 属性支持目录上传。

      启用后,只能选择目录,选择目录后,目录内的文件将被平铺。

      将目录拖到此处,或 点击上传

        手动上传

        jpg/png 文件,且大小不超过 500kb

          API

          属性

          名称描述类型默认值
          action 必传请求地址。string#
          headers设置上传的请求头部。object
          method设置上传请求方法。stringpost
          multiple是否支持多选文件。booleanfalse
          data上传时附带的额外参数。 自 v2.3.13 起支持 Awaitable 数据和 Functionobject / Function{}
          名称上传的文件字段名。stringfile
          with-credentials支持发送 cookie 凭证信息。booleanfalse
          show-file-list是否显示已上传文件列表。booleantrue
          drag是否启用拖拽上传。booleanfalse
          accept接受上传的 文件类型,该属性在 thumbnail-mode === true 时无效。string''
          crossorigin原生属性 crossorigin枚举
          on-preview点击文件列表中已上传文件时的钩子。Function
          on-remove文件列表移除文件时的钩子。Function
          on-success文件上传成功时的钩子。Function
          on-error文件上传失败时的钩子。Function
          on-progress文件上传时的钩子。Function
          on-change文件状态改变时的钩子,添加文件、上传成功和上传失败时都会被调用。Function
          on-exceed当超出限制时的钩子。Function
          before-upload上传文件之前的钩子,参数为上传的文件,若返回 false 或者返回 Promise 且被 reject,则停止上传。Function
          before-remove删除文件之前的钩子,参数为上传的文件和文件列表,若返回 false 或者返回 Promise 且被 reject,则停止删除。Function
          file-list / v-model:file-list默认上传文件。array[]
          list-type文件列表类型。枚举文本
          auto-upload是否在选取文件后立即进行上传。booleantrue
          http-request覆盖默认的 XHR 行为,允许自行实现上传文件的请求。FunctionajaxUpload 详情见
          disabled是否禁用上传。booleanfalse
          limit允许上传文件的最大数量。number
          directory 2.13.1是否支持上传目录。 启用后,只能选择目录,选择目录后,目录内的文件将被平铺。booleanfalse

          插槽

          名称描述类型
          default自定义默认内容。-
          trigger触发文件选择框的内容。-
          tip提示说明文字。-
          file缩略图模板内容。object

          暴露

          名称描述类型
          abort取消上传请求。 如果指定了 file,则取消对应的待上传文件;如果没有指定,则取消所有待上传文件。Function
          submit手动上传文件列表。Function
          clearFiles清空已上传的文件列表(该方法不支持在 before-upload 钩子中调用)。Function
          handleStart手动选择文件。Function
          handleRemove手动移除文件。 filerawFile 已合并。 rawFile 将在 v2.2.0 中被移除。Function

          类型声明

          显示声明
          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
          }

          来源

          组件样式文档

          贡献者