Skip to content

文件输入框

@astryxdesign/core v0.7.1 · FileInput

使用方法 ​

FileInput 用来选择一个或一组文件。值是 File;打开 isMultiple 后是 File[];没有选择时是 null。

vue
<script setup lang="ts">
import { FileInput } from '@astryx-vue/core/FileInput'
import { shallowRef } from 'vue'

const resume = shallowRef<File | File[] | null>(null)
</script>

<template>
  <FileInput v-model="resume" label="简历" accept=".pdf,.docx" />
</template>

mode="input" 是紧凑的输入框。mode="dropzone" 是虚线区域,也可以把文件拖进去。不符合 accept、maxSize 或 maxFiles 的文件不会进入值,字段会显示错误。占位符、清除按钮和错误文案跟随 provideAstryxLocale。

解剖

部分说明
标签标识字段的文字。即使视觉上隐藏,为了无障碍也始终渲染。
说明标签和投放区之间的辅助文字,说明接受的格式或大小限制。
投放区点击即可选择文件的区域。投放区模式下也接受拖进来的文件。
上传图标投放区里暗示上传的托盘图标。
占位还没选文件时的提示文字。
文件名显示已选文件的名字。
清除按钮去掉已选文件,并把焦点交回输入的关闭按钮。
转圈异步上传时出现的加载指示。
状态消息带错误、警告或成功和一条消息的校验反馈。

最佳实践 ​

指引实践
推荐用 label 说明这个字段要什么,用 description 写清接受的类型。
推荐用字节数设置 maxSize,超大的文件在上传前就被拒绝。
避免一份必填文档却用拖放区。人们这时更期待一个普通输入框。

示例 ​

基本用法

PDF or Word document, up to 5 MB

简历字段,接受不超过 5 MB 的 PDF 或 Word 文档。