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判断密码强度(自写代码)
Sep 06 Javascript
javascript 密码框防止用户粘贴和复制的实现代码
Feb 17 Javascript
jQuery对象和DOM对象之间相互转换的方法介绍
Feb 28 Javascript
深入理解JavaScript系列(41):设计模式之模板方法详解
Mar 04 Javascript
编写高性能Javascript代码的N条建议
Oct 12 Javascript
12种JavaScript常用的MVC框架比较分析
Nov 16 Javascript
使用jQuery判断浏览器滚动条位置的方法
May 30 Javascript
jQuery实现切换隐藏与显示同时切换图标功能
Oct 29 jQuery
基于casperjs和resemble.js实现一个像素对比服务详解
Jan 10 Javascript
vue本地打开build后生成的dist文件夹index.html问题
Sep 04 Javascript
vue-cli4使用全局less文件中的变量配置操作
Oct 21 Javascript
ant design 日期格式化的实现
Oct 27 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函数
2011/05/31 PHP
ThinkPHP中使用Ueditor富文本编辑器
2015/09/02 PHP
ThinkPHP框架中使用Memcached缓存数据的方法
2018/03/31 PHP
PHP getNamespaces()函数讲解
2019/02/03 PHP
Smarty缓存机制实例详解【三种缓存方式】
2019/07/20 PHP
jQuery Ajax 全解析
2009/02/08 Javascript
基于jQuery替换table中的内容并显示进度条的代码
2011/08/02 Javascript
js自定义事件及事件交互原理概述(一)
2013/02/01 Javascript
js中文逗号转英文实现
2014/02/11 Javascript
Jquery插件编写简明教程
2014/03/25 Javascript
使用jQuery实现input数值增量和减量的方法
2015/01/24 Javascript
jquery中trigger()无法触发hover事件的解决方法
2015/05/07 Javascript
微信开发 js实现tabs选项卡效果
2016/10/28 Javascript
百度多文件异步上传控件webuploader基本用法解析
2016/11/07 Javascript
详解vue 模版组件的三种用法
2017/07/21 Javascript
jQuery 禁止表单用户名、密码自动填充功能
2017/10/30 jQuery
nodejs简单实现TCP服务器端和客户端的聊天功能示例
2018/01/04 NodeJs
基于Vue渲染与插件的加载顺序的问题详解
2018/03/05 Javascript
animate.css在vue项目中的使用教程
2018/08/05 Javascript
微信小程序HTTP接口请求封装的实现
2019/02/21 Javascript
vuejs+element UI table表格中实现禁用部分复选框的方法
2019/09/20 Javascript
Vue切换组件实现返回后不重置数据,保留历史设置操作
2020/07/21 Javascript
Python正则表达式常用函数总结
2017/06/24 Python
最近Python有点火? 给你7个学习它的理由!
2017/06/26 Python
获取Django项目的全部url方法详解
2017/10/26 Python
Python 实用技巧之利用Shell通配符做字符串匹配
2019/08/23 Python
Python使用指定字符长度切分数据示例
2019/12/05 Python
Python使用循环神经网络解决文本分类问题的方法详解
2020/01/16 Python
Python使用GitPython操作Git版本库的方法
2020/02/29 Python
文明礼仪小标兵事迹
2014/01/12 职场文书
2014年团总支工作总结
2014/11/21 职场文书
消防隐患整改通知书
2015/04/22 职场文书
倡议书的格式写法
2015/04/28 职场文书
浅谈Java实现分布式事务的三种方案
2021/06/11 Java/Android
Javascript中async与await的捕捉错误详解
2022/03/03 Javascript
深入理解pytorch库的dockerfile
2022/06/10 Python