使用ajax步骤
1.创建xhr对象
let xhr=new XMLHttpRequest();
2.绑定监听事件
xhr.onreadystatechange=function(){
if(xhr.readyState4 && xhr.status200){
//接收响应
let result=xhr.responseText;
}
}
3.打开链接,创建请求
xhr.open(method,url,true)
method 必须是字符串 ‘get’ ‘post’
url='http://127.0.0.1:3000/list
4.xhr.send()

<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title></title><script src="js/jquery-3.1.1.min.js" type="text/javascript" charset="utf-8"></script>
</head>
<body><input type="file" id="file" /><!-- 进度条 --><progress id="progress" value="0" max="100"></progress><script type="text/javascript">//获取input file 的dom对象const inputFile=document.querySelector("#file");//监听change事件inputFile.addEventListener('change',function(){var file=inputFile.files[0]console.log(file)console.log(file.name)//文件名称console.log(getFileSize(file.size))//文件大小console.log(checkFileExt(file.name))//文件名是否合法//使用formData 装载fileconst formData=new FormData();formData.append('file',this.files[0]);//上传文件upload(formData);})//文件大小单位换算function getFileSize(fileByte) {var fileSizeByte = fileByte;var fileSizeMsg = "";if (fileSizeByte < 1048576) fileSizeMsg = (fileSizeByte / 1024).toFixed(2) + "KB";else if (fileSizeByte == 1048576) fileSizeMsg = "1MB";else if (fileSizeByte > 1048576 && fileSizeByte < 1073741824) fileSizeMsg = (fileSizeByte / (1024 * 1024)).toFixed(2) + "MB";else if (fileSizeByte > 1048576 && fileSizeByte == 1073741824) fileSizeMsg = "1GB";else if (fileSizeByte > 1073741824 && fileSizeByte < 1099511627776) fileSizeMsg = (fileSizeByte / (1024 * 1024 * 1024)).toFixed(2) + "GB";else fileSizeMsg = "文件超过1TB";return fileSizeMsg;}//字符)检查文件上传表单控件,如果含有[jpg,jpeg,gif,png]则显示“文件类型合法”,否则“显示文件类型错误”function checkFileExt(filename){var flag = false; //状态var arr = ["jpg","png","gif"];//取出上传文件的扩展名var index = filename.lastIndexOf(".");var ext = filename.substr(index+1);//循环比较for(var i=0;i<arr.length;i++){if(ext == arr[i]) {flag = true; //一旦找到合适的,立即退出循环break;}}//条件判断if(flag) {return true}else {return false}}//这里注意一下:前端监听文件进度不需要后端有什么特殊处理,后端仅仅是做了文件流的写入而已。//原生请求// const upload=(formData)=>{//  const xhr=new XMLHttpRequest();//  //监听文件上传进度//  xhr.upload.addEventListener('progress',function(e){//      if(e.lengthComputable){//          //获取进度//          const progress=Math.round((e.loaded*100)/e.total);//          console.log(progress) //获取进度条//          document.querySelector("#progress").setAttribute('value',progress);//      }//  },false);//  //监听上传完成事件//  xhr.addEventListener('load',()=>{//      console.log('上传完成')//  },false);//  xhr.open('post','http://127.0.0.1:3003/upload1');//  xhr.send(formData);// }//使用jquery的ajax上传const upload=(formData)=>{$.ajax({type:'post',url:'http://127.0.0.1:3003/upload1',data:formData,//不进行数据处理和内容处理processData:false,contentType:false,//监听 xhr xhr:function(){const xhr=$.ajaxSettings.xhr();if(xhr.upload){xhr.upload.addEventListener('progress',e=>{const {loaded,total} =e;var progress=Math.round((loaded*100)/total);console.log(progress) //获取进度条document.querySelector('#progress').setAttribute('value',progress);},false);return xhr;}   },success:function(response){console.log('上传成功');}})}//使用 axios 上传并监听进度// const upload=async(formData)=>{//  let config={//      //注意要把 contentType 设置为multipart/form-data//      headers:{//          'Content-Type':'multipart/form-data'//      },//      //监听 onUploadProgress 事件//      onUploadProgress:e =>{//          const {loaded,total} =e;//          //使用本地 progress 事件//          if(e.lengthComputable){//              let progress=Math.round((loaded*100)/total);//              document.querySelector('#progress').setAttribute('value',progress);//          }//      }//  };//  const {status} =await axios.post('http://127.0.0.1:3003/upload1',formData,config);//  if(res.status===200){//      console.log('上传完成');//  }// }</script>
</body>
</html>

ajax文件上传进度条实现相关推荐

  1. html如何显示上传进度条,HTML5 Ajax文件上传进度条如何显示

    这篇文章主要介绍了HTML5 Ajax文件上传进度条是如何显示的,基于原生html5实现,不需要falsh支持,进度可以自定义显示,控制灵活,对HTML5上传进度条感兴趣的小伙伴们可以参考一下 原本打 ...

  2. 大文件上传 进度条显示(仿CSDN资源上传效果) .

    浏览-选择文件-点击 "上传 "后,效果如下: 弹出透明UI遮罩层 并显示上传这个过程 我这里设置太透明了 效果不是很立体 文件结构如图: 说明:用到"高山来客" ...

  3. html资源文件记载进度条,HTML5矢量实现文件上传进度条

    在HTML中,在文件上传的过程中,很多情况都是没有任何的提示,这在体验上很不好,用户都不知道到时有没有在上传.上传成功了没有,所以今天给大家介绍的内容是通过HT for Web矢量来实现HTML5文件 ...

  4. 大文件上传 进度条显示(仿CSDN资源上传效果)

    浏览-选择文件-点击 "上传 "后,效果如下: 弹出透明UI遮罩层 并显示上传这个过程 我这里设置太透明了 效果不是很立体 文件结构如图: 说明:用到"高山来客" ...

  5. HTML5矢量实现文件上传进度条

    在HTML中,在文件上传的过程中,很多情况都是没有任何的提示,这在体验上很不好,用户都不知道到时有没有在上传.上传成功了没有,所以今天给大家介绍的内容是通过HT for Web矢量来实现HTML5文件 ...

  6. PHP + ajax 实现上传进度条、PHP 上传大视频

    一.PHP + ajax 实现上传进度条 1.1 CSS 样式 根据自身调整哦! .processBar{display: inline-block;width: 0;height: 7px;left ...

  7. jquery和php上传文件进度条,jQuery实现文件上传进度条特效_jquery

    上传进度条通常是由前面jquery加后端了脚本器脚本来实现了,今天我们介绍的是一款基本php+jQuery实现文件上传进度条效果的例子,具体细节如下. 最近呢,一个项目做一个进度条的效果出来,这个之前 ...

  8. django文件——django + jquery-file-upload上传篇(二)-- 插件实现文件上传+进度条显示 +拖入文件上传...

    django + jquery-file-upload 插件实现文件上传+进度条显示 1.model.py class Fujian(models.Model):name = models.CharF ...

  9. js实现文件上传进度条功能

    开发中可能会涉及到需要展示文件上传进度条显示,方便用户知道文件的上传状态.其实进度条展示只需要拿到文件已上传的大小,和被上传文件的总大小即可.废话不多说直接上代码!! class fileUpload ...

  10. php大文件上传插件,PHP 大文件上传进度条实现

    目前我知道的方法有两种,一种是使用PHP的创始人 Rasmus Lerdorf 写的APC扩展模块来实现(http://pecl.php.net/package/apc),另外一种方法是使用PECL扩 ...

最新文章

  1. 必知必会的微服务面试题
  2. android 观察者的框架,Android 架构师7 设计模式之观察者模式
  3. 本周ASP.NET英文技术文章推荐[04/08 - 04/14](附赠自弹超级玛丽主题曲)
  4. mybatis入门(五)之Java API
  5. Servlet使用适配器模式进行增删改查案例(jdbc.properties)
  6. 设置dns_网络速度缓慢怎么办?轻松一键修改DNS设置让网速提升五倍
  7. yarn : 无法加载文件 E:\leading\NodeJs\info\node_global\yarn.ps1,因为在此系统上禁止运行脚本
  8. Vue:安装Vue Devtools调试工具简便方法解决Cannot find module webpack-cli,@vue-devtools/build-tools等
  9. 各种说明方法的答题格式_各种轴承安装方法说明及注意事项,避免这些坑提高轴承寿命...
  10. libGDX-5:文本显示 BitmapFont 和 工具 hiero
  11. 微信支付——功能测试用例
  12. 使用SQL管理数据库
  13. 固定链接设置朴素正常html无法显示,wordpress固定链接设置修改常见问题
  14. 分享几个故事:让我想明白了不少事情
  15. 好用的菜单栏翻译软件Bob使用教程,Bob怎么打开录屏权限
  16. 3天完成Open CPU开发!7天完成Costdown!满足客户对成本、功耗、安全性等方面的需求!
  17. 斗兽棋项目开发计划书
  18. [财务][数据化分析][财务背景知识][财务三张基础表][资产负债表][利润表][现金流量表]看懂财务三张表,以后看表再也不求人了...
  19. numpy.argsort()函数
  20. 为了5G!首部强制性地方标准发布!

热门文章

  1. mysql用户管理设置权限_mysql 用户管理和权限设置
  2. pythonddos防御_一个自动封IP防御DDOS脚本
  3. layui 点击头像 上传头像
  4. DPDK-VPP 学习笔记-03 Load Balancer plugin
  5. SpringCloud Alibaba之Nacos组件
  6. mysql lock table阻塞读_MySQL的lock tables和unlock tables的用法【数据库锁表】
  7. python管道怎么使用_Python – 如何使用管道执行shell命令?
  8. OpenCasCade网格的显示
  9. 一周信创舆情观察(11.16~11.22)
  10. java企业员工管理系统_java企业员工考勤管理系统