如何实现反应显示文件上传进度演示

  介绍

这篇文章给大家分享的是有关如何实现反应显示文件上传进度演示的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

Axios是一个基于承诺的HTTP库,可以用在浏览器和节点。js中。
在使用反应,vue框架的时候,如果需要监听文件上传可以使用axios里的onUploadProgress。

反应上传文件显示进度演示

前端快速安装反应应用

确保有节点环境      npx  create-react-app  my-app //当前文件夹创建app文件   cd  my-app //进入目录   npm  install  antd ,//安装antd  UI组件      npm  run  start //启动项目

src→App.js

import  React 得到& # 39;反应# 39;;   import  & # 39; antd/dist/antd.css& # 39;;   import {,上传,消息,按钮,,Progress },得到& # 39;antd& # 39;;   {},UploadOutlined  import 得到& # 39;@ant-design/图标# 39;;      import  axios 得到“axios"   axios.defaults.withCredentials =,真的      class  App  extends  React.Component  {   构造函数才能(道具),{   ,,,超级(道具)   ,,,this.state =, {   ,,,,,文件列表:,[],   ,,,,,上传:,假的,   ,,,,,filseSize:, 0,   ,,,,,baifenbi: 0   ,,,}   ,,}//才能文件上传改变的时候   configs 才能=,{   ,,,头:,{,& # 39;内容类型# 39;:,& # 39;多部分/格式# 39;,},   ,,,withCredentials:,真的,   ,,,onUploadProgress:,(进步),=祝辞,{   ,,,,,console.log(进步);   ,,,,,let  {, loaded },=,进步   ,,,,,let  {, filseSize },=this.state   ,,,,,console.log(加载,,filseSize);   ,,,,,let  baifenbi =,(时间/loaded  filseSize  *, 100) .toFixed (2)   ,,,,,this.setState ({   ,,,,,,baifenbi   ,,,,,})   ,,,}   ,,}//点才能击上传   handleUpload 才能=,(),=祝辞,{   ,,,const  {, fileList },=, this.state;   ,,,const  formData =, new  FormData ();   ,,,fileList.forEach (file =祝辞,{   ,,,,,formData.append(& # 39;文件[]& # 39;,,文件);   ,,,});   ,,,this.setState ({   ,,,,,上传:,真的,   ,,,});   ,,,//请求本地服务   ,,,axios.post (“http://127.0.0.1:5000 upload",, formData,, this.configs),然后(res =祝辞,{   ,,,,,this.setState ({   ,,,,,,,baifenbi:, 100年,   ,,,,,,,上传:,假的,   ,,,,,,,文件列表:,[]   ,,,,,})   ,,,});(log =祝辞,{   ,,,,,console.log(日志);   ,,,})   ,,}   onchange 才能=,(信息),=祝辞,{   ,,,if  (info.file.status  !==, & # 39;上传# 39;),{   ,,,,,this.setState ({   ,,,,,,,filseSize:, info.file.size,   ,,,,,,,baifenbi: 0   ,,,,,})   ,,,}   ,,,if  (info.file.status ===, & # 39;完成# 39;),{   ,,,,,message.success (“$ {info.file.name}, file  uploaded 成功");   ,,,},else  if  (info.file.status ===, & # 39;错误# 39;),{   ,,,,,message.error (“$ {info.file.name}, file  upload  failed.”);   ,,,}   ,,}         渲染才能(),{   ,,,const {上传的不同之处是,fileList },=, this.state;   ,,,const  props =, {   ,,,,,onRemove:, file =祝辞,{   ,,,,,,,this.setState (state =祝辞,{   ,,,,,,,,,const  index =, state.fileList.indexOf(文件);   ,,,,,,,,,const  newFileList =, state.fileList.slice ();   ,,,,,,,,,newFileList.splice(指数,1);   ,,,,,,,,,return  {   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

如何实现反应显示文件上传进度演示