iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Ant Design_Form表单上传文件组件如何实现
  • 358
分享到

Ant Design_Form表单上传文件组件如何实现

2023-07-05 10:07:10 358人浏览 安东尼
摘要

本文小编为大家详细介绍“Ant Design_FORM表单上传文件组件如何实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“Ant Design_Form表单上传文件组件如何实现”文章能帮助大家解决疑惑,下面跟着小编的

本文小编为大家详细介绍“Ant Design_FORM表单上传文件组件如何实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“Ant Design_Form表单上传文件组件如何实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

背景

需要实现的需求:在一个表单提交中,需要提交各种组件的提交信息,其中包括上传文件;一般呢,我们会在选择文件的时候将文件先传到服务器,拿到文件的URL,在提交表单的时候传的其实是文件的URL;

刚开始,对文件没有必填的校验,是比较简单的;但是后来要求文件是必传的,需要加上文件的校验,就暴漏了一些小问题;

实现

首先,先对Upload组件加上必传的校验

rules={[{ required: true, message: "请上传文件" }]},

直接添加required校验,肯定是不行的,我们需要自定义文件的校验;

dom结构大体是这样:

<Item label="上传文件" name="file" rules={[{ required: true, validator: checkFile }]}>    <Upload {...uploadProps}>            <div className="upload-content">                    {imgUrl ? (                            <div className="upload-cover">                                    <img src={imgUrl} />                            </div>                    ) : (                            <div className="upload-btn">{imgLoading ? <LoadinGoutlined /> : <PlusOutlined />}</div>                    )}            </div>    </Upload></Item>

校验:

const checkFile = (rule: any, value: any) => {    if (!value) {            return Promise.reject("请上传文件");    }    return Promise.resolve();};

问题1:

warning.js:6 Warning: [antd: Upload] value is not a valid prop, do you mean fileList?

但是控制台报错:

warning.js:6 Warning: [antd: Upload] value is not a valid prop, do you mean fileList?

按照指示:在Item组件上加上:valuePropName="fileList",发现控制台的报错确实没有了;

但是新的问题来了,当我们上传文件的时候,画面直接崩了!!

问题2:

Uncaught TypeError: (fileList || []).forEach is not a function

在Item组件上添加getValueFromEvent事件;

<Item        label="上传文件"        name="file"        valuePropName="fileList"        rules={[{ required: true, validator: checkFile }]}        getValueFromEvent={normFile}>
const normFile = (e: any) => {        if (Array.isArray(e)) {                return e;        }        return e?.fileList;};
tip1:注意一下新增和修改时校验方法

这时候校验是没问题了,但是,如果你和我一样,新增的提交和编辑的提交公用的时候,这一块校验还是会有问题;编辑内容的时候我们拿到的是文件的URL地址,不是文件对象,那么校验就会一直过不去;

所以校验方法就需要改一下,判断条件也要加上URL,这一块就不贴代码了~

tip2: 注意一下beforeUpload的返回值

这里顺道提一下,ant design 中如果不想走默认的上传,就可以beforeUpload身上做文章了,但是一定要注意拦截默认上传的条件是:

若返回 false 则停止上传。支持返回一个 Promise 对象,Promise 对象 reject 时则停止上传

因为我在这个方法开始的时候对文件的大小进行了限制,如果不满足就终止,但是,习惯性的写成了return;这时候并没有阻止默认上传的行为;需要改写为return false。

读到这里,这篇“Ant Design_Form表单上传文件组件如何实现”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网精选频道。

--结束END--

本文标题: Ant Design_Form表单上传文件组件如何实现

本文链接: https://www.lsjlt.com/news/351007.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Ant Design_Form表单上传文件组件如何实现
    本文小编为大家详细介绍“Ant Design_Form表单上传文件组件如何实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“Ant Design_Form表单上传文件组件如何实现”文章能帮助大家解决疑惑,下面跟着小编的...
    99+
    2023-07-05
  • Ant Design_Form表单上传文件组件实现详解
    目录背景实现问题1:问题2:tip1:注意一下新增和修改时校验方法tip2: 注意一下beforeUpload的返回值背景 需要实现的需求:在一个表单提交中,需要提交各种组件的提交...
    99+
    2023-03-07
    Ant Design_Form表单上传文件 Ant Design_Form
  • Ajax如何实现表单异步上传文件
    这篇文章主要介绍Ajax如何实现表单异步上传文件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.起因做前台页面时,需要调用WebAPI的Post请求,发送一些字段和文件(相当于把表...
    99+
    2024-04-02
  • 如何使用 Golang 实现 Form 表单文件上传?
    go 语言使用 form 表单实现文件上传包括以下步骤:在 html 中设置 enctype="multipart/form-data" 属性,创建表单。在 go 中使用 r.parse...
    99+
    2024-05-13
    文件上传 golang
  • Android实现Ant Design 自定义表单组件
    Ant Design 组件提供了Input,InputNumber,Radio,Select,uplod等表单组件,但实际开发中这是不能满足需求,同时我们希望可以继续使用Form提供的验证和提示等方法(使用起来确实很爽),这时需要...
    99+
    2023-05-31
    ant design 表单组件
  • asp.net中表单上传功能如何实现ajax文件异步上传
    这篇文章主要为大家展示了“asp.net中表单上传功能如何实现ajax文件异步上传”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“asp.net中表单上传功能如何...
    99+
    2024-04-02
  • Ajax如何实现提交Form表单及文件上传
    这篇文章主要为大家展示了“Ajax如何实现提交Form表单及文件上传”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Ajax如何实现提交Form表单及文件上传”这...
    99+
    2024-04-02
  • elemetUi 组件--el-upload如何实现上传Excel文件
    这篇文章将为大家详细讲解有关elemetUi 组件--el-upload如何实现上传Excel文件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。elemetUi 组件--...
    99+
    2024-04-02
  • ajax如何实现无刷新提交表单、上传文件
    这篇文章主要介绍ajax如何实现无刷新提交表单、上传文件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、HTML代码 <!DOCTYPE html PUBLIC &...
    99+
    2024-04-02
  • AjaxFileUpload如何实现单个文件的Ajax文件上传库
    这篇文章将为大家详细讲解有关AjaxFileUpload如何实现单个文件的Ajax文件上传库,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。jQuery.AjaxFileU...
    99+
    2024-04-02
  • SpringBoot如何实现单文件与多文件上传功能
    这篇文章将为大家详细讲解有关SpringBoot如何实现单文件与多文件上传功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.单文件上传首先创建一个Spring Boot项目,并添加spring-boo...
    99+
    2023-06-26
  • java如何实现单文件与多文件上传功能
    小编给大家分享一下java如何实现单文件与多文件上传功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!java 文件上传(单文件与多文件)一、简述一个javaWe...
    99+
    2023-05-30
    java
  • SpringBoot实现单文件与多文件上传
    目录一、公共文件存储代码1.FileUploadUtils.java2.FileUtils.java3.MimeTypeUtils.java4.FileException.java5...
    99+
    2024-04-02
  • vue如何实现上传组件
    这篇文章主要介绍vue如何实现上传组件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!思路文件上传的两种实现方式From形式<form   method="post&quo...
    99+
    2023-06-15
  • SpringBoot简单实现文件上传
    目录1.创建SpringBoot项目2.修改application.properties配置文件3.编写控制器UserController类4.编写前端页面index.html5.效...
    99+
    2024-04-02
  • javaWeb实现简单文件上传
    本文实例为大家分享了javaWeb实现简单文件上传的具体代码,供大家参考,具体内容如下 1.先导入两个包:commons-fileupload-1.3.3.jar,commons-i...
    99+
    2024-04-02
  • 如何使用fileupload组件实现文件上传功能
    要使用fileupload组件实现文件上传功能,你需要进行以下步骤:1. 在HTML文件中,添加一个文件上传的input元素,设置t...
    99+
    2023-08-14
    fileupload
  • SpringMVC 单文件上传与多文件上传实例
    一、简述一个javaWeb项目中,文件上传功能几乎是必不可少的,本人在项目开发中也时常会遇到,以前也没怎么去理它,今天有空学习了一下这方面的知识,于是便将本人学到的SpringMVC中单文件与多文件上传这部分知识做下笔记。二、单文件上传1、...
    99+
    2023-05-31
    springmvc 文件上传 多文件上传
  • php如何实现文件夹上传文件
    这篇“php如何实现文件夹上传文件”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php如何实现文件夹上传文件”文章吧。一、什...
    99+
    2023-07-05
  • react使用antd的上传组件实现文件表单一起提交功能
    本篇内容主要讲解“react使用antd的上传组件实现文件表单一起提交功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“react使用antd的上传组件实现文件表单一起提交功能”吧!项目中需要实...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作