返回顶部
首页 > 资讯 > 前端开发 > JavaScript >react中antdUpload手动上传的示例
  • 620
分享到

react中antdUpload手动上传的示例

2024-04-02 19:04:59 620人浏览 安东尼
摘要

目录情况介绍实现方法1.初始化2.上传表单和图片3.图片回显情况介绍 在antd官方提供的upload组件案例中,都使用了action属性直接上传,唯一手动上传的一个例子(如下图)也

情况介绍

在antd官方提供的upload组件案例中,都使用了action属性直接上传,唯一手动上传的一个例子(如下图)也不够好用,可能不能满足项目的需求,所以我们需要对其进行一些修改,并加入一些别的方法。

我们经常会使用antd的fORM表单上传数据,有时就会需要同时上传图片。所以在这里我们需要实现的是,前端页面上传多张图片时,先存储在前端,当表单上传时,和表单数据一起上传到后端

实现方法

1.初始化

首先,在最前面引入upload组件,

import { Button, Form, Input, message, Upload} from 'antd';

然后在form中加入upload,

this.state = {
      previewVisible: false,
      previewImage: '',
      fileList: [] //用来存图片列表
    };
<Form.Item
            name="files"
          >
            <Upload
              listType="picture-card"
              headers={{ 'content-type': 'multipart/form-data' }}
              fileList={fileList}  //存已上传到页面的图片列表
              onPreview={this.handlePreview} //点击文件链接或预览图标时的回调
              onChange={this.handleChange}  //删除或者新上传时的回调
              beforeUpload={() => false}  //上传文件之前的钩子,参数为上传的文件,若返回 `false` 则停止上传。我们采用手动上传。
            >
              {fileList.length >= 1 ? null : (
                <div>
                  <PlusOutlined />
                  <div style={{ marginTop: 8 }}>上传</div>
                </div>
              )}
            </Upload>
          </Form.Item>
handlePreview = (file) => {
    this.setState({
      previewImage: file.thumbUrl,
      previewVisible: true
    });
  };
handleChange = ({ fileList }) => {
    this.setState({ fileList });
  };

2.上传表单和图片

这里我们统一使用JSON格式进行前后端的交互。由于在form表单中的图片格式是对象,但是我们不需要对象格式,我们需要的是fileList数组,所以,我们需要手动将每一张图片其加入到formData中。

onFinish = (values) => {
    const { fileList } = this.state;
    const formData = new FormData();
      delete values.files; //删除表单内的图片对象
      for (const key in values) {
        if (values[key] !== undefined && values[key] !== null) {
          formData.append(key, values[key]);
        }
      } //对于其他表单对象,可以直接上传
      fileList.forEach((item) => formData.append('files', utils.transferFile(item.thumbUrl)));
  };

3.图片回显

成功上传图片后,由于我这里后端给到前端的图片格式是base64,图片不能直接显示,但是还要考虑到,在编辑表单时,图片可能还会再上传,以下是我们的做法。 componentDidMount大家都知道是React生命周期在组件挂载在之后的函数吧,我们经常会将数据的一些预处理放在这里。

下面,我们首先需要调接口,获取后台数据。然后修改数据格式,将图片格式改成base64显示的格式,然后加入到fileList中,就可以将已经上传的图片重新加入到Upload组件中,实现回显。并且,后期再次上传时,也是可以的。

  let { image } = res.data.data;
  let imgArr = image.map((item) => {
    return { thumbUrl: 'data:image/png;base64,' + item };
  });
  this.setState({
    fileList: imgArr
  });

到此这篇关于react中antd Upload手动上传的示例的文章就介绍到这了,更多相关react antd Upload手动上传内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: react中antdUpload手动上传的示例

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

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

猜你喜欢
  • react中antdUpload手动上传的示例
    目录情况介绍实现方法1.初始化2.上传表单和图片3.图片回显情况介绍 在antd官方提供的upload组件案例中,都使用了action属性直接上传,唯一手动上传的一个例子(如下图)也...
    99+
    2024-04-02
  • antd+react中upload手动上传单限制上传一张
    目录需求代码导入所需的库用到的常量/stateUpload回调函数需求 限制上传一张图片点击按钮,手动上传新增图片替换原来的图片,没有图片时显示PlusOutLined图片预览弹出框...
    99+
    2024-04-02
  • react显示文件上传进度的示例
    目录react上传文件显示进度 demo 前端 快速安装react应用src-> App.js后台 使用express搭载web服务器app.jsAxios 是一个基于 pro...
    99+
    2024-04-02
  • React+Koa实现文件上传的示例
    目录背景 服务端依赖 后端配置跨域后端配置静态资源访问 使用 koa-static-cache后端配置requst body parse 使用 koa-bodyparser前端依赖 ...
    99+
    2024-04-02
  • React+react-dropzone+node.js实现图片上传的示例代码
    本文将会用typescript+react+react-dropzone+express.js实现前后端上传图片。当然是用typescript需要提前下载相应的模块,在这里就不依依介绍了。 第一步...
    99+
    2022-06-04
    示例 图片上传 代码
  • maven手动上传jar包示例及图文步骤过程
    目录一、maven私服搭建二、gradle配置三、打包四、上传至maven私服中五、使用六、刷新gradle一、maven私服搭建 使用Nexus进行搭建,网上教程很多,不多赘述了。...
    99+
    2024-04-02
  • Python基于React-Dropzone实现上传组件的示例代码
    目录实例演示1. axios上传普通文件:2. 大文件导入:结语这次我要讲述的是在React-Flask框架上开发上传组件的技巧。我目前主要以React开发前端,在这个过程中认识到了许多有趣的前端UI框架——Reac...
    99+
    2022-06-02
    Python React-Dropzone上传组件 Python 上传组件
  • React中onClick传递参数问题的示例分析
    这篇文章给大家分享的是有关React中onClick传递参数问题的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 背景说明在下图这样的列表中,点击删除按钮需要执行删除操作 列表产生:{...
    99+
    2023-06-25
  • PHP中文件上传的示例分析
    小编给大家分享一下PHP中文件上传的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!php有什么特点1、执行速度快。2、具有很好的开放性和可扩展性。3、PH...
    99+
    2023-06-14
  • Nodejs中文件上传、监听上传进度的示例分析
    这篇文章主要为大家展示了“Nodejs中文件上传、监听上传进度的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Nodejs中文件上传、监听上传进度的示例...
    99+
    2024-04-02
  • 基于React-Dropzone开发上传组件功能(实例演示)
    这次我要讲述的是在React-Flask框架上开发上传组件的技巧。我目前主要以React开发前端,在这个过程中认识到了许多有趣的前端UI框架——React-Bootstrap、Ant...
    99+
    2024-04-02
  • React的createElement和render手写实现示例
    目录TL;DR科普概念准备工作实现 createElement实现 render测试TL;DR 本文的目标是,手写实现createElement和render React.creat...
    99+
    2024-04-02
  • vue中多附件上传的实现示例
    目录前言核心代码文件展示部分代码前言 本篇主要记录在 Vue项目中 实现附件上传功能,可实现单/多附件上传,识别文件格式并用不同图标展示功能,及控制是否可编辑功能。内容简洁易懂,如...
    99+
    2024-04-02
  • React中ref的示例分析
    这篇文章给大家分享的是有关React中ref的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。为了摆脱繁琐的Dom操作, React提倡组件化, 组件内部用数据来驱动视图的...
    99+
    2024-04-02
  • android中okhttp实现断点上传示例
    前言 之前项目需要上传大文件的功能,上传大文件经常遇到上传一半由于网络或者其他一些原因上传失败。然后又得重新上传(很麻烦),所以就想能不能做个断点上传的功能。于是网上搜索,发...
    99+
    2022-06-06
    okhttp 示例 断点 Android
  • php中文件上传至OSS的示例分析
    小编给大家分享一下php中文件上传至OSS的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!删除的时候记住不要带域名,也不要带'/'这个路径...
    99+
    2023-06-20
  • React中JSX与react事件的示例分析
    小编给大家分享一下React中JSX与react事件的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、JSX1.1、表...
    99+
    2024-04-02
  • Node.js实现文件上传的示例
    文件上传指的是将用户本地的文件上传到服务器中。 上传文件需要处理两个位置: 客户端 客户端如何上传文件? 上传文件的表单项需要指定为input,type是file 要上传文件必须将表单enc...
    99+
    2022-06-04
    示例 文件上传 Node
  • jQuery.Form上传文件的示例分析
    小编给大家分享一下jQuery.Form上传文件的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!建立test文件夹PHP...
    99+
    2024-04-02
  • javascript头像上传的示例分析
    这篇文章主要为大家展示了“javascript头像上传的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“javascript头像上传的示例分析”这篇文章吧...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作