原生JS上传大文件显示进度条 php上传文件代码


Posted in Javascript onMarch 27, 2020

JS原生上传大文件显示进度条,php上传文件,供大家参考,具体内容如下

原生JS上传大文件显示进度条 php上传文件代码

在php.ini修改需要的大小:

upload_max_filesize = 8M   
post_max_size = 10M   
memory_limit = 20M 

<!DOCTYPE html>
<html>
<head>
 <title>原生JS大文件显示进度条</title>
 <meta charset="UTF-8">
 <style type="text/css">
 #parent{position: relative;width: 500px;height:20px;border:1px solid #ccc;display: none;border-radius:20px}
 #child{position: absolute;width:0%;height:20px;background: #5FB878;display: none;line-height: 20px;color: #ffffff;font-size: 12px;border-radius:20px}
 </style>
 <script type="text/javascript">
 function $(id){
  return document.getElementById(id);
 }
 </script>
</head>
<body>
 <form action="" method="post">
 <div id="parent">
  <div id="child"></div>
 </div>
 <p>上传文件:<input type="file" name="file"></p> 
 <p><input type="submit" value="提交" id="submit"></p>
 </form>
 <script type="text/javascript">
 var oForm = document.getElementsByTagName('form')[0];
 var oSubmit = $('submit');
 //如果多个人同时提交这个表单的时候,由于是异步的请求,互不影响
 oSubmit.onclick = function(){
  try{
  var xhr = new XMLHttpRequest();
  }catch(e){
  var xhr = new ActiveXObject("Msxml2.XMLHTTP");
  }
  xhr.upload.onprogress = function(e){
  var ev = e || window.event;
  var percent = Math.floor((ev.loaded / ev.total)*100); 
  // console.log(percent);
  //将百分比显示到进度条
  $('parent').style.display = 'block';
  $('child').style.display = 'block';
  //将上传进度的百分比显示到child里面
  $('child').style.width = percent+'%';
  $('child').style.textAlign = 'center';
  $('child').innerHTML = percent+'%';
  //判断如果百分比到达100%时候,隐藏掉
  if(percent==100){
   $('parent').style.display = 'none';
   $('child').style.display = 'none';
  }
  }
  xhr.open('post','progress.php',true);
  var form = new FormData(oForm);
  xhr.send(form);
  xhr.onreadystatechange = function(){
  if(xhr.readyState==4 && xhr.status==200){
   eval("var obj ="+xhr.responseText);
   if(obj.status){
   alert('上传成功');
   }else{
   alert('上传失败');
   }
  }
  }
  //阻止表单提交
  return false;
 }
 </script>
</body>
</html>
<?php
 //开始上传
 //注意:文件是windows系统的文件,采用的gbk编码,php文件使用的是utf-8编码
 //我们不能直接修改文件的编码,只能临时修改一下php的编码
 $dst_file = $_FILES['file']['name'];
 $dst_file = iconv('utf-8', 'gbk', $dst_file);
 if(move_uploaded_file($_FILES['file']['tmp_name'],$dst_file)){
 $data['status'] = 1;
 }else{
 $data['status'] = 0;
 }
 echo json_encode($data);

更多精彩内容请参考专题《ajax上传技术汇总》,《javascript文件上传操作汇总》和《jQuery上传操作汇总》进行学习。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript读取中文cookie时的乱码问题的解决方法
Oct 14 Javascript
jQuery中使用了document和window哪些属性和方法小结
Sep 13 Javascript
document.getElementById获取控件对象为空的解决方法
Nov 20 Javascript
学习JavaScript设计模式(链式调用)
Nov 26 Javascript
详解在Vue中通过自定义指令获取dom元素
Mar 04 Javascript
深入理解Node.js中的进程管理
Mar 13 Javascript
基于vue.js轮播组件vue-awesome-swiper实现轮播图
Mar 17 Javascript
layui导航栏实现代码
May 19 Javascript
Three.js加载外部模型的教程详解
Nov 10 Javascript
react-native android状态栏的实现
Jun 15 Javascript
转换layUI的数据表格中的日期格式方法
Sep 19 Javascript
微信小程序修改数组长度的问题的解决
Dec 17 Javascript
vue中遇到的坑之变化检测问题(数组相关)
Oct 13 #Javascript
seaJs使用心得之exports与module.exports的区别实例分析
Oct 13 #Javascript
vue中axios处理http发送请求的示例(Post和get)
Oct 13 #Javascript
JavaScript实现随机数生成器(去重)
Oct 13 #Javascript
AngualrJs清除定时器遇到的坑
Oct 13 #Javascript
React Native中Navigator的使用方法示例
Oct 13 #Javascript
React Native中TabBarIOS的简单使用方法示例
Oct 13 #Javascript
You might like
一个PHP分页类的代码
2011/05/18 PHP
php实现简单洗牌算法
2013/06/18 PHP
yii的CURD操作实例详解
2014/12/04 PHP
php使用str_replace替换多维数组的实现方法分析
2017/06/15 PHP
PHP调用其他文件中的类
2018/04/02 PHP
jquery插件 cluetip 关键词注释
2010/01/12 Javascript
JavaScript 设计模式 富有表现力的Javascript(一)
2010/05/26 Javascript
MyEclipse取消验证Js的两种方法
2013/11/14 Javascript
Javascript控制input输入时间格式的方法
2015/01/28 Javascript
深入理解JavaScript系列(46):代码复用模式(推荐篇)详解
2015/03/04 Javascript
js获取form的方法
2015/05/06 Javascript
jQuery EasyUI常用数据验证汇总
2016/09/18 Javascript
JS实现自动阅读单词(有道单词本添加功能)
2016/11/14 Javascript
Bootstrap CSS组件之按钮下拉菜单
2016/12/17 Javascript
Bootstrap下拉菜单更改为悬停(hover)触发的方法
2017/05/24 Javascript
vue一个页面实现音乐播放器的示例
2018/02/06 Javascript
vue实现在一个方法执行完后执行另一个方法的示例
2018/08/25 Javascript
解决Vue 给mapState中定义的属性赋值报错的问题
2020/06/22 Javascript
python中Pycharm 输出中文或打印中文乱码现象的解决办法
2017/06/16 Python
Python 3.x读写csv文件中数字的方法示例
2017/08/29 Python
Python和Java进行DES加密和解密的实例
2018/01/09 Python
Python操作MySQL模拟银行转账
2018/03/12 Python
如何使用python爬虫爬取要登陆的网站
2019/07/12 Python
Python利用matplotlib绘制约数个数统计图示例
2019/11/26 Python
解决python打开https出现certificate verify failed的问题
2020/09/03 Python
Python实现曲线拟合的最小二乘法
2021/02/19 Python
HTML5 与 XHTML2
2008/10/17 HTML / CSS
玩具反斗城天猫官方旗舰店:享誉全球的玩具店
2017/10/10 全球购物
山海经纬软件测试笔试题和面试题
2013/04/02 面试题
仓库班组长岗位职责
2013/12/12 职场文书
决心书标准格式
2014/03/11 职场文书
企业法人代表任命书
2014/06/06 职场文书
民事申诉状范本
2015/05/20 职场文书
跟班学习心得体会(共6篇)
2016/01/23 职场文书
MySQL注入基础练习
2021/05/30 MySQL
Spring Boot 实现敏感词及特殊字符过滤处理
2021/06/29 Java/Android