ant design中upload组件上传大文件,显示进度条进度的实例


Posted in Javascript onOctober 29, 2020

Upload组件是自带上传进度,但是样式调起来很麻烦,我们要做的就是自定义一个

首先页面要引入组件 Upload, Progress

uploadAttachmentsProps = {
 action: `/api/upload`,
 showUploadList: false, // 这里关闭自带的列表
 beforeUpload: (info) => {
 /* 上传前的钩子,可以用来判断类型,和大小 
 if ('是否符合类型') {
  return false
 }
 if ('是否符合类型') {
  return false
 }
 return true
 */
 },
 onChange: (info) => {
 console.log(info)
 /*
  回调有三个参数
  {
   file: { ... },
   fileList: [ ... ],
   event: { ... }
  }
 */ 
 }
} 
<Upload {...uploadAttachmentsProps}>
 <a style={{marginRight: '10px'}}><Icon type="plus"></Icon>添加</a>
</Upload>

进度条我们需要回调里的 event,

const event = info.event
if (event) { // 一定要加判断,不然会报错
 let percent = Math.floor((event.loaded / event.total) * 100)

 this.setState({percent: percent})
 console.log(percent) // percent就是进度条的数值
}

进度条组件:

<Progress percent={this.state.percent} />

补充知识:ant design (antd) Upload 点击上传图片反应过慢

每次点击上传的时候,要等半年,才能出来选择文件框,有的时候,还会出来俩次,比较恶心,其实是电脑去本地搜索文件啥的,过滤的时间

const props = {
  action: this.state.action,
  fileList: fileList,
  data: {
    appid: appid,
    secret: secret,
  },
  headers: {'X-Requested-With': null},
  // accept: "image/*",
  accept: "image/jpg,image/jpeg,image/png,image/bmp",
  onChange: this.handleChange,
  beforeUpload: this.beforeUpload,
  onPreview: this.handlePreview,
  listType: "picture-card",
};


<Upload {...props}>
  {fileList.length >= this.state.length ? null : uploadButton}
</Upload>

注意点:

重要的是上面注释掉的:accept:想象一下,你如果给电脑很多筛选条件的话自然就慢了,image/*代表了全部的图片文件,如果可能的话,尽量少写两个。速度自然就快了。

不过第一次好像还是会慢点的,不过不会像以前一样,每次都要等。

以上这篇ant design中upload组件上传大文件,显示进度条进度的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript OOP之面向对象
Jul 31 Javascript
jQuery Dialog 打开时自动聚焦的解决方法(两种方法)
Nov 24 Javascript
Vue2 模板template的四种写法总结
Feb 23 Javascript
vue使用jsonp抓取qq音乐数据的方法
Jun 21 Javascript
Vue项目引进ElementUI组件的方法
Nov 11 Javascript
JS多个表单数据提交下的serialize()应用实例分析
Aug 27 Javascript
layui实现二维码弹窗、并下载到本地的方法
Sep 25 Javascript
微信小程序修改checkbox的样式代码实例
Jan 21 Javascript
React组件设计模式之组合组件应用实例分析
Apr 29 Javascript
js实现星星打分效果
Jul 05 Javascript
Vue使用路由钩子拦截器beforeEach和afterEach监听路由
Nov 16 Javascript
JavaScript中10个Reduce常用场景技巧
Jun 21 Javascript
react使用antd表单赋值,用于修改弹框的操作
Oct 29 #Javascript
node.js爬虫框架node-crawler初体验
Oct 29 #Javascript
JavaScript实现网页计算器功能
Oct 29 #Javascript
Javascript数组及类数组相关原理详解
Oct 29 #Javascript
antd Form组件方法getFieldsValue获取自定义组件的值操作
Oct 29 #Javascript
node.js如何操作MySQL数据库
Oct 29 #Javascript
TypeScript魔法堂之枚举的超实用手册
Oct 29 #Javascript
You might like
PHP中全面阻止SQL注入式攻击分析小结
2012/01/30 PHP
php程序员应具有的7种能力小结
2014/11/27 PHP
详解WordPress中用于更新和获取用户选项数据的PHP函数
2016/03/08 PHP
php实现自定义中奖项数和概率的抽奖函数示例
2017/05/26 PHP
CheckBox 如何实现全选?
2006/06/23 Javascript
20个非常棒的Jquery实用工具 国外文章
2010/01/01 Javascript
jQuery.extend()、jQuery.fn.extend()扩展方法示例详解
2014/05/08 Javascript
javascript创建函数的20种方式汇总
2015/06/23 Javascript
JavaScript基础知识点归纳(推荐)
2016/07/09 Javascript
JS冒泡事件与事件捕获实例详解
2016/11/25 Javascript
完美解决input[type=number]无法显示非数字字符的问题
2017/02/28 Javascript
Angular使用$http.jsonp发送跨站请求的方法
2017/03/16 Javascript
jQuery图片查看插件Magnify开发详解
2017/12/25 jQuery
如何为你的JavaScript代码日志着色详解
2019/04/08 Javascript
vue实现多组关键词对应高亮显示功能
2019/07/25 Javascript
JavaScript中的this妙用实例分析
2020/05/09 Javascript
JavaScript代码简化技巧实例解析
2020/09/09 Javascript
vue print.js打印支持Echarts图表操作
2020/11/13 Javascript
vue3.0封装轮播图组件的步骤
2021/03/04 Vue.js
[03:42]2014DOTA2国际邀请赛 第三日比赛排位扑朔迷离
2014/07/12 DOTA
Python连接mssql数据库编码问题解决方法
2015/01/01 Python
Python中使用Inotify监控文件实例
2015/02/14 Python
整理Python中的赋值运算符
2015/05/13 Python
Python函数any()和all()的用法及区别介绍
2018/09/14 Python
Django 创建后台,配置sqlite3教程
2019/11/18 Python
Python单元测试模块doctest的具体使用
2020/02/10 Python
CSS3 flex布局之快速实现BorderLayout布局
2015/12/03 HTML / CSS
HTML5之SVG 2D入门13—svg对决canvas及长处和适用场景分析
2013/01/30 HTML / CSS
伦敦一家非常流行的时尚精品店:Oxygen Boutique
2017/01/15 全球购物
小女主人连衣裙:Little Mistress
2017/07/10 全球购物
Mountain Warehouse德国官网:英国户外零售商
2019/08/11 全球购物
岗位职责范本
2013/11/23 职场文书
房屋出售协议书
2014/04/10 职场文书
大学生就业自我推荐信
2014/05/10 职场文书
教师批评与自我批评范文
2014/10/15 职场文书
2016大学生入党积极分子心得体会
2016/01/06 职场文书