广告
返回顶部
首页 > 资讯 > 精选 >react如何实现文件上传
  • 142
分享到

react如何实现文件上传

2023-07-04 23:07:04 142人浏览 八月长安
摘要

本篇内容介绍了“React如何实现文件上传”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!react实现文件上传的方法:1、通过“import

本篇内容介绍了“React如何实现文件上传”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

react实现文件上传的方法:1、通过“import { Table, Button, Modal, FORM, Input, Upload, Icon, notification } from 'antd';”引入所需antd的部件;2、通过“handleOk = e => {const { fileList } = this.state...}”实现提交表单并上传文件即可。

react使用antd实现手动上传文件(提交表单)

要实现的效果

react如何实现文件上传

实现步骤

引入所需antd的部件

import { Table, Button, Modal, Form, Input, Upload, Icon, notification } from 'antd';

这个是表单的

 <Modal          title="文件上传"          visible={this.state.visible}          onOk={this.handleOk} //点击按钮提价表单并上传文件          onCancel={this.handleCancel}        >          <Form layout="vertical" onSubmit={this.handleSubmit}>            <Form.Item>              <div  key={Math.random()}>//点击关闭在次打开还会有上次上传文件的缓存                <Upload {...props}>                  <Button type="primary">                    <Icon type="upload" />选择文件                 </Button>                </Upload>               </div>            </Form.Item>            <Form.Item label="文件名(可更改)">              {getFieldDecorator('filename', {                // initialValue:this.state.defEmail,                rules: [                  {                    message: '请输入正确的文件名',                    // pattern: /^[0-9]+$/,                  },                  {                    required: true,                    message: '请输入文件名',                  },                ],              })(<Input />)}            </Form.Item>            <Form.Item label="描述(选填)">              {getFieldDecorator('describe', {                 rules: [                  {                    message: '描述不能为空',                  },                  {                    required: false,                    message: '请输入描述',                  },                ],              })(<TextArea />)}            </Form.Item>            <Form.Item label="文件类型">              {getFieldDecorator('filetype', {                rules: [                  {                    message: '文件类型',                  },                  {                    required: true,                    message: '文件类型',                  },                ],              })(<Input disabled={true} />)}            </Form.Item>          </Form>        </Modal>

下面的代码是Upload的props

  const props = {      showUploadList: true,      onRemove: file => {        this.setState(state => {          const index = state.fileList.indexOf(file);          const newFileList = state.fileList.slice();          newFileList.splice(index, 1);          return {            fileList: newFileList,          };        });      },      beforeUpload: file => {        console.log(file)        let { name } = file;        var fileExtension = name.substring(name.lastIndexOf('.') + 1);//截取文件后缀名        this.props.form.setFieldsValue({ 'filename': name, 'filetype': fileExtension });//选择完文件后把文件名和后缀名自动填入表单        this.setState(state => ({          fileList: [...state.fileList, file],        }));        return false;      },      fileList,    };

下面是重点提交表单并上传文件

handleOk = e => {//点击ok确认上传    const { fileList } = this.state;    let formData = new FormData();    fileList.forEach(file => {      formData.append('file', file);    });     this.props.form.validateFields((err, values) => { //获取表单值      let { filename, filetype, describe } = values;      formData.append('name', filename);      formData.append('type', filetype);      formData.append("dir", "1");      if(describe==undefined){        formData.append('description',"");      }else{        formData.append('description',describe);      }            UploadFile(formData).then(res => { //这个是请求        if (res.status == 200 && res.data != undefined) {          notification.success({            message: "上传成功",            description: res.data,          });        } else {          notification.error({            message: "上传失败",            description: res.status,          });        }      })      this.setState({        visible: false      });     })  };

注意我用的axiOS,post必须使用formData.append("接口参数名",“要传的值”);如果不想用axios还可以用别的请求

fetch(url, { //fetch请求        method: 'POST',        body: formData,    })            axios({ //axios        method: 'post',        url: url,        data: formData,        headers:{ //可加可不加          'Content-Type': 'multipart/form-data; boundary=----            WEBKitFormBoundary6jwpHyBuz5iALV7b'        }    })    .then(function (response) {        console.log(response);    })    .catch(function (error) {        console.log(error);    });

这样就能实现手动上传文件了。

遇到的坑

第一次选择完文件,点击上传。第二次在打开Model发现上回的文件列表还在,我在网上找的方法是给upload及一个key值但只有点击ok后第二次打开Model缓存才会消失,但是点击canel还会存在。

<div key={Math.random()}>                <Upload  {...props}>                  <Button type="primary">                    <Icon type="upload" />选择文件                 </Button>                </Upload>               </div>

最好的方法就是this.setState把state里文件列表置空

 this.props.form.resetFields()//添加之前把input值清空    this.setState({      visible: true,      fileList: [] //把文件列表清空    });

也可以给Modal加一个 destroyOnClose 属性  关闭时销毁 Modal 里的子元素。

“react如何实现文件上传”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: react如何实现文件上传

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

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

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

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

下载Word文档
猜你喜欢
  • react如何实现文件上传
    本篇内容介绍了“react如何实现文件上传”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!react实现文件上传的方法:1、通过“import...
    99+
    2023-07-04
  • react怎么实现文件上传
    本教程操作环境:Windows10系统、react18.0.0版、Dell G3电脑。react怎么实现文件上传?react使用antd实现手动上传文件(提交表单)前言:最近在做一个后台管理项目涉及到上传文件,使用antd里的Upload实...
    99+
    2023-05-14
    React
  • React+Koa实现文件上传的示例
    目录背景 服务端依赖 后端配置跨域后端配置静态资源访问 使用 koa-static-cache后端配置requst body parse 使用 koa-bodyparser前端依赖 ...
    99+
    2022-11-12
  • 如何实现react显示文件上传进度demo
    这篇文章给大家分享的是有关如何实现react显示文件上传进度demo的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。在...
    99+
    2023-06-14
  • React文件分段上传实现方法详解
    目录原理方案antd Upload文件分片MD5发送分片请求显示上传进度最近做了大文件(文件夹)分片上传的需求,记录一下。 原理 前端进行大文件分片上传的方案几乎都是利用Blob.p...
    99+
    2022-11-13
    React文件分段上传 React文件上传
  • vue如何实现文件上传
    本篇内容主要讲解“vue如何实现文件上传”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue如何实现文件上传”吧!1、使用elementUI的 el-upload插件进行上传。html:<...
    99+
    2023-06-29
  • VB.NET如何实现文件上传
    这篇文章主要为大家展示了“VB.NET如何实现文件上传”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“VB.NET如何实现文件上传”这篇文章吧。利用VB.NET向服务器上传文件VB.NET文件上传...
    99+
    2023-06-17
  • php如何实现文件夹上传文件
    这篇“php如何实现文件夹上传文件”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php如何实现文件夹上传文件”文章吧。一、什...
    99+
    2023-07-05
  • Spring boot实现文件上传实例(多文件上传)
    文件上传主要分以下几个步骤:(1)新建maven java project;(2)在pom.xml加入相应依赖;(3)新建一个表单页面(这里使用thymleaf);(4)编写controller;(5)测试;(6)对上传的文件做一些限制;(...
    99+
    2023-05-31
    spring boot 文件上传
  • React+Node实现大文件分片上传、断点续传秒传思路
    目录1、整体思路2、实现步骤2.1 文件切片加密2.2 查询上传文件状态2.3 秒传2.4 上传分片、断点续传2.5 合成分片还原完整文件3、总结4、后续扩展与思考5、源码1、整体思...
    99+
    2022-11-13
  • JS如何实现多文件上传
    这篇文章主要介绍JS如何实现多文件上传,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体实现代码如下所示:<!DOCTYPE html> <html>...
    99+
    2022-10-19
  • node+multiparty如何实现文件上传
    这篇文章主要讲解了“node+multiparty如何实现文件上传”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“node+multiparty如何实现文件上...
    99+
    2022-10-19
  • Java如何实现FTP文件上传
    这篇文章给大家分享的是有关Java如何实现FTP文件上传的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、配置FTP文件服务器以Ubuntu为例FTP两种模式简介PORT(主动模式)第一步FTP客户端首先随机选择...
    99+
    2023-06-15
  • SpringBoot如何实现多文件上传
    这篇文章主要介绍“SpringBoot如何实现多文件上传”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringBoot如何实现多文件上传”文章能帮助大家解决问题。1.代码结构:2.Control...
    99+
    2023-07-05
  • ASP.NET实现文件上传
    本文实例为大家分享了ASP.NET实现文件上传的具体代码,供大家参考,具体内容如下 .NET中C/S和B/S上传文件不同 B/S中文件上传和C/S中的文件上传性质完全不一样 在C/S...
    99+
    2022-11-13
  • Node.js实现文件上传
    在工作中碰到了这样的需求,需要用nodejs 来上传文件,之前也只是知道怎么通过浏览器来上传文件, 用nodejs的话, 相当于模拟浏览器的行为。 google 了一番之后, 明白了浏览器无非就是利用htt...
    99+
    2022-06-04
    文件上传 Node js
  • vue实现文件上传
    本文实例为大家分享了vue实现文件上传的具体代码,供大家参考,具体内容如下 记录问题,方便回顾 1、使用elementUI的 el-upload插件进行上传。 2、使用input。 ...
    99+
    2022-11-13
  • PHP实现文件上传
    上传文件的必备三个条件: 上传到后台的文件 method = "post";(不可以为get方法) enctype = "multipart/form-data";(注意哦,是data,不是date) 三者缺一不可 后台PHP的$_FIL...
    99+
    2023-09-02
    php 服务器 开发语言
  • HTML5如何实现拖拉上传文件
    这篇文章主要介绍了HTML5如何实现拖拉上传文件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在拖动目标上触发事件 (源元素): ondra...
    99+
    2022-10-19
  • JavaScript中Uploadify如何实现文件上传
    这篇文章主要介绍了JavaScript中Uploadify如何实现文件上传,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。运行环境: Java...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作