React实战之Ant Design—Upload上传_附件上传

Upload组件大家都在官方文档中看过了,但写的时候还是会遇到许多问题,一些新手看了文档后感觉无从下手,本文过多的简绍就不说了,直接看代码和注释,直接用就行

我直接放在form表单中,因为实战中单个附件上传很少几,乎都在form表单中加入一个附件上传所以为了更好的应用,我直接就放在form表单中应用

import React, { PureComponent } from 'react';
import {Form, Button, Icon,Upload} from 'antd'; const FormItem = Form.Item;
@Form.create()
class xxx extends PureComponent {
state = {
fileList: [],//存放上传信息:比如路径、文件名
imgList: [],//存放回显信息:修改时的路径、文件名
}; //form表单提交事件
handleSubmit = e => {
const { dispatch, form } = this.props;
e.preventDefault();
form.validateFieldsAndScroll((err, values) => {
if (!err) {
const { imgList } = this.state
values.imgList = JSON.stringify(imgList);
console.log('values', values);
}
});
}; //上传事件
onChange = ({ fileList }) => {
console.log('file', fileList);
let imgList = [];
fileList.map(function (item, key) {
if (item.response && item.response.success) {
          console.log('item.response',item.response);
imgList.push({ url: item.response.url, Name: item.response.name });//这的参数具体看上传成功后返回的值,打印的item.response
} else {
//回显
if (item.url) {
//拼接'http:// 如果路径可以直接使用不需要拼接
imgList.push({ url: item.url.replace('http://', ""), Name: item.name });
}
}
});
this.setState({ fileList, imgList });
}
render() {//const {form: { getFieldDecorator, getFieldValue }} = this.props;
     const { fileList } = this.state
const props = {
name: 'UploadFile',//name得看接口需求,name与接口需要的name一致
action: 'http://.......',//接口路径
data: { },//接口需要的参数,无参数可以不写
multiple: true,//支持多个文件
showUploadList: true,//展示文件列表
} return (
        <Form onSubmit={this.handleSubmit}><FormItem label="附件">
            <Upload {...props}
              fileList={fileList}
              onChange={this.onChange}
>
  <Button>
                <Icon type="upload" /> 上传附件
              </Button>
  </Upload>,
  </FormItem>
           <FormItem >
            <Button type="primary" htmlType="submit" >
              提交
            </Button>
            </FormItem>
         </Form>
);
}
export default xxx;

  

代码可以用于新增功能和编辑功能,如有问题欢迎联系!不到之处多多指教

React实战之Ant Design—Upload上传_附件上传的更多相关文章

  1. Ant Design Upload 组件上传文件到云服务器 - 七牛云、腾讯云和阿里云的分别实现

    在前端项目中经常遇到上传文件的需求,ant design 作为 react 的前端框架,提供的 upload 组件为上传文件提供了很大的方便,官方提供的各种形式的上传基本上可以覆盖大多数的场景,但是对 ...

  2. 2017.11.7 ant design - upload 组件的使用, react 条件渲染以及 axios.all() 的使用

    一.主要任务:悉尼小程序管理后台,添加景点页面的开发 二.所遇问题及解决 1. 上传多个不同分类音频信息时,如中文音频和英文音频,要求音频不是放在一个数组中的,每个音频是一个独立的字段,此时: < ...

  3. React组件库Ant Design的安装与使用

    一.什么是 Ant Design 1.Ant Design 提炼自企业级中后台产品的交互语言和视觉风格 2.Ant Design 使用 TypeScript 构建,提供完整的类型定义文件 二.Ant ...

  4. react 编写 基于ant.design 页面的参考笔记

    前言 因为我没有系统的学习 react,是边写边通过搜索引擎找相对的问题,看 ant.design的 中文文档 编写的一个单页面, 以下的笔记都是写 gksvideourlr 时记录的. 重新设定表单 ...

  5. java 支持 超大上G , 多附件上传

    首先 确定要上传的目录 WEB.XML 文件 Java代码   <listener> <listener-class><!-- 临时文件收集器 , 支持超大附件必须项 - ...

  6. 【React自制全家桶】一、Webstrom+React+Ant Design+echarts搭建react项目

    前言 一.React是Facebook推出的一个前端框架,之前被用于著名的社交媒体Instagram中,后来由于取得了不错的反响,于是Facebook决定将其开源.出身名门的React也不负众望,成功 ...

  7. Ant design在vue,react的引入

    文章地址: https://www.cnblogs.com/sandraryan/ 最近由于 一些不可描述的原因 要研究一下Ant design这个前端框架. 祭上官网: https://ant.de ...

  8. Ant Design Pro 脚手架+umiJS 实践总结

    一.简介 1.Ant Design Pro Ant Design Pro是一款搭建中后台管理控制台的脚手架 ,基于React,dva.js,Ant Design (1)其中dva主要是控制数据流向,是 ...

  9. Ant Design(ui框架)

    官方文档:https://ant.design/docs/react/introduce-cn 说明:Ant Design 是一个 ui框架,和 bootstrap 一样是ui框架.里面的组件很完善, ...

随机推荐

  1. Leetcode 212.单词搜索II

    单词搜索II 给定一个二维网格 board 和一个字典中的单词列表 words,找出所有同时在二维网格和字典中出现的单词. 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中"相邻&q ...

  2. [luoguP1489] 猫狗大战(DP)

    传送门 类似背包的做法. f[i][j]表示是否能放i个物品,价格为j #include <cstdio> #include <iostream> #define N 8001 ...

  3. poj 1182用向量的思考模式

    不会写果断看答案http://cavenkaka.iteye.com/blog/1489588 #include<stdio.h> #include<string.h> #de ...

  4. Codeforces Round #414

    A =w= B qvq C(贪心) 题意: Alice和Bob分别有长度为n(n<=1e5)的字符串,Alice先手,每次从自己的字符串中抽出一个字母放到新字符串的某个位置,一共轮流n次,也就是 ...

  5. spring boot项目自定义数据源,mybatisplus分页、逻辑删除无效解决方法

    Spring Boot项目中数据源的配置可以通过两种方式实现: 1.application.yml或者application.properties配置 2.注入DataSource及SqlSessio ...

  6. springmvc json 数据

    这里是controllor层 @RequestMapping("/traceupdatestatus") @ResponseBody public boolean traceupd ...

  7. Ubuntu 16.04下减小/释放/清理VirtualBox虚拟硬盘文件的大小

    一般在VirtualBox中安装Windows,然后用无缝模式进行某些特定软件的使用. 而VirtualBox的虚拟硬盘会越用越大,并且VirtualBox没有自带清理工具,相比VMware来说,VM ...

  8. MongoDB小结19 - find【查询条件$all】

    利用all来查询所以满足的匹配项,已知数据库有这些数据 db.user.find({},{"_id":0}) { "fruit" : [ "apple ...

  9. 【python】glob模块、os模块

    http://www.cnblogs.com/hongten/p/hongten_python_glob.html http://wenku.baidu.com/link?url=AgUq9_yQVj ...

  10. TCP_NODELAY和TCP_CORK nagle算法和cork算法

    TCP_NODELAY 默认情况下,发送数据採用Nagle 算法.这样尽管提高了网络吞吐量,可是实时性却减少了,在一些交互性非常强的应用程序来说是不同意的.使用TCP_NODELAY选项能够禁止Nag ...