Antd Form 表单中使用Upload组件

本文介绍了在Ant Design的Form组件中使用Upload组件进行文件上传的实现方式,包括设置文件类型、最大数量、大小限制以及上传前验证。在上传过程中,通过customRequest方法自定义上传逻辑,确保文件不超过200MB,并在上传成功后更新状态。同时,展示了normFile函数用于规范化文件列表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Antd Form 表单中使用Upload组件

  1. html

    <Form.Item
       label='文件上传'
       name='uploadFile'
       valuePropName='fileList'
       getValueFromEvent={normFile}
       rules={[
         { required: true, message: '必填' }
       ]}
    >
      <Upload
         {...uploadProps}
      >
        <Button><UploadOutlined />Upload</Button>
      </Upload>
    </Form.Item>
    
  2. js

    const normFile = (e: any) => {
      if (Array.isArray(e)) {
        return e
      }
      return e && e.fileList
    }
    const maxSize = 200
    const uploadProps: UploadProps = {
      accept: '.svga,.mp4',
      maxCount: 1,
      beforeUpload: (file) => {
        const isMAX = file.size / 1024 / 1024 < maxSize
        if (!isMAX) {
          message.error(`上传的svga/mp4不能超过${maxSize}M!`)
        }
        return isMAX
      },
      customRequest: async (options) => {
        const formData = new FormData()
        formData.append('file', options.file)
        const { data } = await giftUploadSvgaApi(formData, ({ total, loaded }) => {
          options.onProgress(
            { percent: Math.round((loaded / total) * 100).toFixed(2) }, options.file
          )
        })
        if (data.retCode === 0) {
          setSvgaMd5(result.md5)
          options.onSuccess(data, options.file)
          message.success(`${options.file.name} 上传成功!`)
        }
      }
    }
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值