Uploader 上传

示例

文件上传

设置 type 的值为 file 进入文件上传模式。

  • demo-file1.txt
  • demo-file2.txt
<template>
<article>
  <veui-uploader
    v-model="files"
    action="https://app.fakejson.com/q/ELymQ7xh?token=AWFkjMICPSAB_bO_z-Lnog"
  />
</article>
</template>

<script>
import Uploader from 'veui/components/Uploader'

export default {
  components: {
    'veui-uploader': Uploader
  },
  data () {
    return {
      files: [
        {
          name: 'demo-file1.txt'
        },
        {
          name: 'demo-file2.txt'
        }
      ]
    }
  }
}
</script>

图片上传

设置 type 的值为 image 进入图片上传模式。

<template>
<article>
  <veui-uploader
    v-model="images"
    type="image"
    action="https://app.fakejson.com/q/ELymQ7xh?token=AWFkjMICPSAB_bO_z-Lnog"
    ui="horizontal"
  />
</article>
</template>

<script>
import Uploader from 'veui/components/Uploader'

export default {
  components: {
    'veui-uploader': Uploader
  },
  data () {
    return {
      images: [
        {
          src: '/images/content/uploader/demo-image1.jpg'
        },
        {
          src: '/images/content/uploader/demo-image2.jpg'
        }
      ]
    }
  }
}
</script>

API

属性

属性类型默认值描述
typestring'file'

上传类型。

描述
file文件上传。
image图片上传。
valueObject|Array<Object>-
max-count字段类型
1Object
大于 1nullArray<Object>

每个文件对象的类型为 {name: string, src: string, ...},以及在 convert-response 中自定义添加的字段。

namestring'file'原生 <input> 元素的 name
actionstring-上传地址。
headersObjectuploader.headers需要加入 HTTP 请求头 的内容。可进行全局统一配置。
with-credentialsbooleantrueXMLHttpRequestwith-credentials 属性。
request-modestringuploader.requestMode

指定异步上传方式。可进行全局统一配置。

描述
xhr通过 XMLHttpRequest 上传。
iframe通过 <iframe> 上传。
iframe-modestringuploader.iframeMode

指定在 request-mode 的值为 iframe 的模式下,上传成功后的回调方式。可进行全局统一配置。

描述
postmessage通过 PostMessage 回调。
callback通过调用 windowcallback-namespace 里的回调函数回调。
callback-namespacestringuploader.callbackNamespacerequest-mode 的值为 'iframe' 并且 iframe-mode 的值为 'callback' 的模式下,指定回调函数的命名空间,放在 window 对象下。可进行全局统一配置。
data-typestring'json'

如果回调的值是文本, 指明文本的解析方式。如果回调的数据是 Object,则 data-type 可以为空。

描述
json回调的文本是 JSON。
text回调的文本是普通文本。
convert-responseuploader.convertResponse-

将回调数据转换成需要的格式的函数,使组件能够判断上传是否成功以便显示相应结果,参数是回调数据。返回结果的格式要求如下:

字段类型描述
successboolean表示上传是否成功。
namestring=文件的名称。successtrue 时必须。
srcstring=文件的地址。successtrue 时必须。
messagestring=上传失败时的出错信息。successfalse 时必须。

还可以给返回结果加上其它自定义的属性,这些自定义属性会被包含在 value 以及 changesuccessfailureremoveprogress 事件的回调参数 file 中 。可进行全局统一配置。

acceptstring-与原生 <input> 元素 的 accept 相同,在浏览器的文件类型筛选后再加一层校验。对于类似 application/msword 这样的 MIME type 与扩展名对不上的情形跳过校验。
extensionsArray<string>['jpg', 'jpeg', 'gif', 'png', 'bmp', 'tif', 'tiff', 'webp', 'apng', 'svg']如果 accept 的值是类似 'image/*' 这样的形式,可以指定能通过校验的所有的扩展名。
uistring-

预设样式。

描述
horizontal横向排列。
max-countnumber-最大文件数量。
max-sizenumber|string-单个文件的最大大小,如果是 number,单位是 byte;如果是 string,支持在数字后面添加单位,单位可以是 b/kb/mb/gb/tb
payloadObject-附带在上传请求中的额外参数。
progressstring'text'

指定在 request-mode 的值为 xhr 的模式下,上传的进度的显示方式。

描述
text显示提示文字。
number显示上传进度百分比。
bar显示上传进度条。
autouploadbooleantrue指定是否在选完文件后立刻上传。
orderstringasc

上传文件的显示顺序,按照开始上传的时间排序。

描述
asc升序排列。
desc降序排列。

插槽

名称描述
button-label

上传文件的按钮里的内容。

默认内容:提示选择文件。

desc对文件数量、格式、大小等的提示内容。
type-invalid

文件类型没有通过校验时的警告内容。

默认内容:提示文件的类型不符合要求。

size-invalid

文件大小没有通过校验时的警告内容。

默认内容:提示文件的大小不符合要求。

count-overflow

文件的数量超过限制时的警告内容。

默认内容:提示文件的数量超过限制。

success-label

上传成功后的提示内容。

默认内容:提示上传成功。

failure-label

上传失败后的提示内容。

默认内容:提示上传失败。

uploading-label

上传过程中,并且 progress 的值是 text 的时候的提示内容。

默认内容:提示上传中。

file

单个文件的区域,用来定制文件内容。

名称类型描述
namestring文件的名称。
srcstring文件的地址。
statusstring文件的状态。'success' 表示上传成功;'uploading' 表示正在上传;'failure' 表示上传失败。
indexnumber文件在列表中的序号。
file-before单个文件内容之前的区域。作用域参数与 file 作用域插槽相同。
file-after单个文件内容之后的区域。作用域参数与 file 作用域插槽相同。
extra-operation在图片上传模式下,提供放置额外的操作组件的区域,例如放置自定义功能的按钮。作用域参数与 file 作用域插槽相同。

事件

名称描述
change

只在上传成功、删除文件时触发,回调参数为 (value)

名称类型描述
valueObject|Array<Object>组件的 value 的值。
remove

删除文件时触发,回调参数为 (file, index)

名称类型描述
fileObject被删除的文件。
indexnumber被删除的文件的序号。

file 字段详情

字段类型描述
namestring文件名称。
srcstring文件地址。
statusstring上传状态。'success' 表示上传成功;'uploading' 表示正在上传;'failure' 表示上传失败。

同时也包含在 convert-response 中添加的自定义属性。

success上传成功时触发,回调参数与 remove 事件的回调参数相同。
failure上传失败时触发,回调参数与 remove 事件的回调参数相同。
statuschange

在所有文件总的状态发生变化时触发,回调参数为组件整体的状态 (status: string)

描述
empty没有选择任何文件上传。
uploading有任一文件正在上传中。
failure有任一文件上传失败。
success所有文件上传成功。
progress

request-mode 的值为 'xhr' 的情况下,在上传进度发生变化时触发,回调参数为 (file, index, event)

名称类型描述
fileObjectremove 事件的回调参数中的 file 相同。
indexnumber正在上传的文件的序号。
eventEvent上传进度原生事件。

全局配置

名称类型默认值描述
uploader.requestModestring'xhr'参见 request-mode 属性。
uploader.iframeModestring'postmessage'参见 iframe-mode 属性。
uploader.callbackNamespacestring'veuiUploadResult'参见 callback-namespace 属性。
uploader.headersObject-参见 headers 属性。
uploader.convertResponsefunction(Object): Object-参见 convert-response 属性。

图标

名称描述
upload上传文件。
clear删除。
success上传成功。
redo重试。
file已上传文件。
add添加文件。
alert校验失败警告。