Antd Upload封装(React)

封装的功能包括:
  1. 文件类型检查
  2. 文件大小检查
  3. 文件数量检查
  4. 文件预览
供参考
import React, {
    ReactNode, useState } from 'react';
import {
    Upload, Button, Modal, message } from 'antd';
import {
    UploadProps } from 'antd/lib/upload/Upload';
import {
    UploadChangeParam } from 'antd/lib/upload';
import {
    UploadFile } from 'antd/es/upload/interface';
import CenterImage from '@/components/CenterImage/CenterImage';

const accetpMap = {
   
  zip: 'application/zip,application/x-zip,application/x-zip-compressed',
  pdf: 'application/pdf',
  excel:
    'application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
  image: 'image/jpeg,image/bmp,image/png,image/gif,image/svg',
  word:
    '.doc,.docx,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document',
  csv: '.csv',
  normal: 'image/jpeg,image/png',
  normalAndSvg: 'image/jpeg,image/png,image/svg+xml'
};

interface FileProps {
   
  onChange?: (file: any) => void;
  value?: any[];
  // 子组件
  children?: ReactNode;
  /** 文字说明 */
  extra?: string | ReactNode;
  // 限制数量
  amount?: number;
  // 限制大小 单位 M
  size?: number;
  // 限制上传类型
  accept?:
    | 'zip'
    | 'excel'
    | 'pdf'
    | 'image'
    | 'word'
    | 'csv'
    | 'normal'
    | 'normalAndSvg'
    | Partial<'zip' | 'excel' | 'pdf' | 'image' | 'word' | 'csv'>[];
  // 同upload参数
  otherProps?: UploadProps;
}
/** 文件上传
 * @param amount 上传数量限制,默认不限制,超过设定值隐藏上传按钮
 */
export default function Index(
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值