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 相关文章推荐
JQuery AJAX提交中文乱码的解决方案
Jul 02 Javascript
jQuery EasyUI API 中文文档 - TimeSpinner时间微调器
Oct 23 Javascript
JS Jquery 遍历,筛选页面元素 自动完成(实现代码)
Jul 08 Javascript
javascript操纵OGNL标签示例代码
Jun 16 Javascript
jQuery动态修改字体大小的方法【测试可用】
Sep 09 Javascript
jQuery插件开发发送短信倒计时功能代码
May 09 jQuery
详解Node使用Puppeteer完成一次复杂的爬虫
Apr 18 Javascript
使用vue-cli3 创建vue项目并配置VS Code 自动代码格式化 vue语法高亮问题
May 14 Javascript
Vue组件之高德地图地址选择功能的实例代码
Jun 21 Javascript
微信小程序实现侧边栏分类
Oct 21 Javascript
JavaScript实现图片轮播特效
Oct 23 Javascript
微信小程序用户登录和登录态维护的实现
Dec 10 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提取数据库内容中的图片地址并循环输出
2010/03/21 PHP
PHP的可变变量名的使用方法分享
2012/02/05 PHP
php连接oracle数据库的方法(测试成功)
2016/05/26 PHP
php+js实现百度地图多点标注的方法
2016/11/30 PHP
js创建数据共享接口——简化框架之间相互传值
2011/10/23 Javascript
jquery序列化方法实例分析
2015/06/10 Javascript
关于javascript原型的修改与重写(覆盖)差别详解
2016/08/31 Javascript
Js获取当前日期时间及格式化代码
2016/09/17 Javascript
JavaScript输入框字数实时统计更新
2017/06/17 Javascript
React利用插件和不用插件实现双向绑定的方法详解
2017/07/03 Javascript
Vue子组件向父组件通信与父组件调用子组件中的方法
2018/06/22 Javascript
vue实现歌手列表字母排序下拉滚动条侧栏排序实时更新
2019/05/14 Javascript
Layui Table js 模拟选中checkbox的例子
2019/09/03 Javascript
对Layer弹窗使用及返回数据接收的实例详解
2019/09/26 Javascript
vue 实现cli3.0中使用proxy进行代理转发
2019/10/30 Javascript
修改Vue打包后的默认文件名操作
2020/08/12 Javascript
手把手教你实现 Promise的使用方法
2020/09/02 Javascript
jQuery实现查看图片功能
2020/12/01 jQuery
[01:23:45]DOTA2-DPC中国联赛 正赛 CDEC vs Dragon BO3 第一场 1月22日
2021/03/11 DOTA
[01:42:49]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第一场 2月26日
2021/03/11 DOTA
基于Django模板中的数字自增(详解)
2017/09/05 Python
浅谈pycharm出现卡顿的解决方法
2018/12/03 Python
Python数据持久化存储实现方法分析
2019/12/21 Python
pytorch 实现模型不同层设置不同的学习率方式
2020/01/06 Python
Python 没有main函数的原因
2020/07/10 Python
Python将list元素转存为CSV文件的实现
2020/11/16 Python
新加坡交友网站:be2新加坡
2019/04/10 全球购物
俄罗斯品牌服装和鞋子在线商店:BRIONITY
2020/03/26 全球购物
法律专业实习鉴定
2013/12/22 职场文书
新领导上任欢迎词
2014/01/13 职场文书
劳动实践课感言
2014/02/01 职场文书
敬老院院长事迹材料
2014/05/21 职场文书
2014领导班子四风问题对照检查材料思想汇报
2014/09/21 职场文书
六年级语文下册教学计划
2015/01/22 职场文书
php微信小程序解包过程实例详解
2021/03/31 PHP
Win10系统搭建ftp文件服务器详细教程
2022/08/05 Servers