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 this用法小结
Dec 19 Javascript
JS获取后台Cookies值的小例子
Mar 04 Javascript
js格式化金额可选是否带千分位以及保留精度
Jan 28 Javascript
深入理解javascript构造函数和原型对象
Sep 23 Javascript
JavaScript实现阿拉伯数字和中文数字互相转换
Jun 12 Javascript
JavaScript实现三级联动效果
Jul 15 Javascript
详解angular笔记路由之angular-router
Sep 12 Javascript
BACKBONE.JS 简单入门范例
Oct 17 Javascript
jQuery实现导航样式布局操作示例【可自定义样式布局】
Jul 24 jQuery
vue导出html、word和pdf的实现代码
Jul 31 Javascript
聊聊Vue 中 title 的动态修改问题
Jun 11 Javascript
p5.js临摹旋转爱心
Oct 23 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伪造referer实例代码
2008/09/20 PHP
解析php file_exists无效的解决办法
2013/06/26 PHP
php实现事件监听与触发的方法
2014/11/21 PHP
thinkPHP中多维数组的遍历方法
2016/01/09 PHP
php 删除指定文件夹的实例讲解
2017/07/25 PHP
js同时按下两个方向键
2007/12/01 Javascript
IE和firefox浏览器的event事件兼容性汇总
2009/12/06 Javascript
模拟select的代码
2011/10/19 Javascript
Node.js 服务器端应用开发框架 -- Hapi.js
2014/07/29 Javascript
js实现点击后将文字或图片复制到剪贴板的方法
2014/08/04 Javascript
js仿支付宝填写支付密码效果实现多方框输入密码
2016/03/09 Javascript
常用的js验证和数据处理总结
2016/08/02 Javascript
json2.js 入门教程之使用方法与实例分析
2017/09/14 Javascript
vue中v-model动态生成的实例详解
2017/10/27 Javascript
webpack引入eslint配置详解
2018/01/22 Javascript
jQuery实现菜单的显示和隐藏功能示例
2018/07/24 jQuery
js实现双人五子棋小游戏
2020/05/28 Javascript
基于Echarts图表在div动态切换时不显示的解决方式
2020/07/20 Javascript
Python Web框架Pylons中使用MongoDB的例子
2013/12/03 Python
Python多进程原理与用法分析
2018/08/21 Python
pandas 根据列的值选取所有行的示例
2018/11/07 Python
安装2019Pycharm最新版本的教程详解
2019/10/22 Python
django实现类似触发器的功能
2019/11/15 Python
Pytorch生成随机数Tensor的方法汇总
2020/09/09 Python
Django前后端分离csrf token获取方式
2020/12/25 Python
使用HTML5和CSS3表单验证功能
2017/05/05 HTML / CSS
全球领先的全景影像品牌:Insta360
2019/08/21 全球购物
DOUGLAS荷兰:购买香水和化妆品
2020/10/24 全球购物
2013年办公室秘书的个人自我鉴定
2013/10/24 职场文书
作文评语集锦大全
2014/04/23 职场文书
理发店策划方案
2014/06/05 职场文书
祖国在我心中演讲稿600字
2014/09/23 职场文书
和谐家庭事迹材料
2014/12/20 职场文书
处级干部考察材料
2014/12/24 职场文书
三十年再续同学情倡议书
2019/11/27 职场文书
php修改word的实例方法
2021/11/17 PHP