#UploadMultiFile 多文件上传
支持多种文件类型上传的组件,可限制文件类型、数量和大小。
#安装
npm
yarn
pnpm
bun
deno
npx shadcn@latest add https://codebase.anyask.dev/r/upload-multi-file.jsonyarn dlx shadcn@latest add https://codebase.anyask.dev/r/upload-multi-file.jsonpnpm dlx shadcn@latest add https://codebase.anyask.dev/r/upload-multi-file.jsonbunx shadcn@latest add https://codebase.anyask.dev/r/upload-multi-file.jsondeno run npm:shadcn@latest npm:add https://codebase.anyask.dev/r/upload-multi-file.json#基础用法
import { UploadMultiFile } from '@/components/UploadMultiFile';
function Demo() {
const [value, setValue] = useState([]);
return (
<UploadMultiFile
value={value}
onChange={setValue}
/>
);
}#限制文件类型
function Demo() {
return (
<UploadMultiFile
value={value}
onChange={setValue}
allowedTypes={['pdf', 'excel']}
/>
);
}#自定义限制
function Demo() {
return (
<UploadMultiFile
value={value}
onChange={setValue}
allowedTypes={['image']}
maxCount={5}
fileSize={2}
/>
);
}#自定义按钮文案和帮助信息
function Demo() {
return (
<UploadMultiFile
value={value}
onChange={setValue}
buttonText="选择文件"
help="支持上传 PDF、Excel 格式文件,单文件不超过 10M"
/>
);
}#下载模板功能
function Demo() {
return (
<UploadMultiFile
value={value}
onChange={setValue}
downloadTemplateSceneCode="template_001"
downloadTemplateFileName="模板.xlsx"
downloadButtonText="下载模板"
/>
);
}#API
#UploadMultiFileProps
| 属性 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| value | 文件列表 | UploadFileInfo[] | - |
| onChange | 变化回调 | (value: UploadFileInfo[]) => void | - |
| allowedTypes | 允许的文件类型 | FileType[] | ['all'] |
| maxCount | 文件最大个数 | number | 10 |
| fileSize | 文件大小限制(单位 M) | number | 10 |
| onUploading | 是否上传中的回调 | (uploading: boolean) => void | - |
| buttonText | 自定义按钮文案 | string | '上传文件' |
| help | 自定义帮助信息 | ReactNode | - |
| downloadTemplateSceneCode | 下载模板的场景代码 | string | - |
| downloadTemplateFileName | 下载模板的文件名 | string | - |
| downloadButtonText | 下载按钮的文案 | string | '下载模板' |
继承 Ant Design Upload 组件的其他属性(除 value、onChange、accept)。
#FileType
type FileType = 'image' | 'pdf' | 'excel' | 'word' | 'all';#UploadFileInfo
| 属性 | 说明 | 类型 |
|---|---|---|
| fileHash | 文件 hash | string |
| fileName | 文件名 | string |
#FILE_TYPE_CONFIGS
预定义的文件类型配置:
| 类型 | MIME 类型 | 扩展名 | 显示名称 |
|---|---|---|---|
| image | image/jpeg, image/png | .jpg, .jpeg, .png | 图片 |
| application/pdf | |||
| excel | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel | .xlsx, .xls | Excel |
| word | application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/msword | .docx, .doc | Word |
| all | - | - | 所有文件 |
