Skip to content

FileUpload 文件上传

通用文件上传组件,支持多文件、类型限制、大小限制。

基础用法

vue
<template>
  <FileUpload 
    v-model="fileList" 
    :limit="5"
    :file-size="10"
    :file-type="['pdf', 'doc', 'docx']"
  />
</template>

Props

属性类型默认值说明
modelValueString/Array''v-model 绑定值
actionString'/api/file/upload'上传地址
businessTypeString'common'业务类型
businessIdString''业务 ID
storageTypeString'local'存储类型
limitNumber5数量限制
fileSizeNumber10大小限制 (MB)
fileTypeArray[]文件类型限制
multipleBooleantrue多选
showFileListBooleantrue显示文件列表
showTipBooleantrue显示提示
valueTypeString'string'返回值类型:string/array/object

返回值类型

类型说明
string逗号分隔的 fileId 字符串
arrayfileId 数组
object完整文件对象数组

事件

事件参数说明
successfileData上传成功
errorerror上传失败
removefile删除文件

方法

js
// 手动提交
fileUploadRef.value.submit()

// 清空文件
fileUploadRef.value.clear()

示例

vue
<script setup>
import { ref } from 'vue'
import FileUpload from '@/components/file-upload/index.vue'

const formData = ref({
  attachments: ''
})
</script>

<template>
  <n-form :model="formData">
    <n-form-item label="附件">
      <FileUpload 
        v-model="formData.attachments"
        :limit="3"
        :file-size="20"
        :file-type="['pdf', 'doc', 'docx', 'xls', 'xlsx']"
        business-type="contract"
      />
    </n-form-item>
  </n-form>
</template>