Skip to content

文件上传


image

介绍

基本表单组件,用于用户选择文件上传。

API

Props

参数名描述类型默认值
status状态'default' |'disabled'|'readonly'|'hide''default'
title标题string'附件上传'
showLabel显示标题booleantrue
width字段占比'25%'|'50%'|'75%'|'100%''100%'
labelWidth标签宽度Object-
value默认值string-
name数据字段string-
apiAPI绑定string-
draggable拖拽booleanfalse
dragDesc拖拽提示信息string-
btnTitle按钮内容string-
btnType按钮类型'primary'|'default'|'outline''default'
directory文件夹上传booleanfalse
multiple多选booleanfalse
fileName上传文件名'files'|'file''files'
extraData额外数据Function-
headers头部信息Function-
setUrl文件预览地址Function-
maxFileNum最大上传文件个数number-
maxFileSize单文件最大上传大小(MB)number-
withCredentials是否允许请求cookiebooleanfalse
autoUpload自动上传booleantrue
accept上传文件类型string-
enablePreview开启预览booleanfalse
previewEvent预览事件Function-
enableDownload开启下载booleantrue
downloadEvent下载事件Function-
baseStyle自定义样式 , 表格整体自定义样式string-
customClass类名绑定 , 绑定类的名称string-
boxStyle盒模型 , margin,border,padding设置BoxStyle-
uniqueKey唯一标识 , 组件的唯一标识string-
valueFormat默认值数据格式'default'|'object''default'
extra补充说明string-
tip气泡提醒string-
validate校验Validate-
loop循环, 循环渲染设置Loop-

注意

如果文件上传的接口不返回数组或字符串数组,而是返回一个 url 字符串,则应在上传成功时触发事件中对返回的数据进行如下处理:

js
/**
 * 上传成功时触发
 *
 */
function action(ctx, fileItem) {
  fileItem.response.data = [fileItem.response.data];
}

Events

事件名描述参数
onSuccess上传成功时触发ctx
params:{fileItem: FileItem}
loop:LoopParams
onError上传失败时触发ctx
params:{fileItem: FileItem}
loop:LoopParams
onChange上传的文件状态发生改变时触发ctx
params:{fileItem: FileItem, fileList: FileItem[]}
loop:LoopParams
onExceeLimit上传的文件超出限制后触发ctx
params:{fileItem: FileItem, fileList: FileItem[]}
loop:LoopParams
onPreview点击图片预览时触发ctx
params:{fileItem: FileItem}
loop:LoopParams
onProgress上传中的文件进度改变时触发ctx
params:{fileItem: FileItem, ev: ProgressEvent}
loop:LoopParams
onBeforeUpload上传前ctx
file: FileItem
loop:LoopParams
onBeforeRemove移除文件前触发ctx
params: FileItem
loop:LoopParams

Type

javascript
type FileItem = {
  "file":File,
  "name":string,
  "percent":number,
  "response":{
    "alert":string,
    "code":string
    "data":any,
    "msg":string
    "ts":number,
  }
  "status":string,
  "uid":string,
  "url":string,
}

常见场景配置

设置默认值

上传组件的默认值数据类型与高级栏中默认值数据格式设置有关。默认值数据格式为「默认」时,默认值数据类型为 url 字符串数组;默认值数据格式为「对象数组」时,默认值数据类型为对象数组。 以下是不同默认值数据格式下的默认值配置方式:

  1. 默认值数据格式为「默认」时,默认值配置示例如下:
js
["/bucket/test1.png", "/bucket/test2.png"];

  1. 默认值数据格式为「对象数组」时,默认值需具备两个字段:name(文件名称)和 url(文件地址)。默认值配置示例如下:
js
[
  {
    url: "/uploadFile",
    name: "文件1",
  },
  {
    url: "/uploadFile",
    name: "文件2",
  },
];

  1. 默认值中,若字符串或对象数组的 url 以 http 开头,则上传文件的地址为该 url;否则,上传文件的地址为{当前页面网址}/minio/${url}。具体示例如下:
js
[
  {
    url: "https://hisense.com/uploadFile1",
    name: "文件1",
  },
  {
    url: "/uploadFile2",
    name: "文件2",
  },
];

此时文件 1 的上传地址为https://hisense.com/uploadFile1,文件 2 的上传地址为{当前页面网址}/minio/uploadFile2