原生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 一段左右两边随屏滚动的代码
Jun 18 Javascript
JavaScript 函数式编程的原理
Oct 16 Javascript
基于jQuery的history历史记录插件
Dec 11 Javascript
基于node.js的快速开发透明代理
Dec 25 Javascript
javascript使用activex控件的代码
Jan 27 Javascript
jQuery 关于伪类选择符的使用说明
Apr 24 Javascript
jQuery原型属性和原型方法详解
Jul 07 Javascript
jQuery实现订单提交页发送短信功能前端处理方法
Jul 04 Javascript
深入理解JavaScript创建对象的多种方式以及优缺点
Jun 01 Javascript
vuejs使用$emit和$on进行组件之间的传值的示例
Oct 04 Javascript
微信小程序实现团购或秒杀批量倒计时
Nov 01 Javascript
微信小程序日历组件使用方法详解
Dec 29 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
PHP4实际应用经验篇(4)
2006/10/09 PHP
一家之言的经验之谈php+mysql扎实个人基本功
2008/03/27 PHP
php函数的常用方法及注意之处小结
2011/07/10 PHP
PHP后台微信支付和支付宝支付开发
2017/04/28 PHP
javascript读取xml
2006/11/04 Javascript
jquery和javascript中如何将一元素的内容赋给另一元素
2014/01/09 Javascript
用jQuery toggleClass 实现鼠标移上变色
2014/05/14 Javascript
node.js中的console.log方法使用说明
2014/12/09 Javascript
windows8.1+iis8.5下安装node.js开发环境
2014/12/12 Javascript
JavaScript中getUTCSeconds()方法的使用详解
2015/06/11 Javascript
javascript生成随机数方法汇总
2015/11/12 Javascript
JS冒泡事件与事件捕获实例详解
2016/11/25 Javascript
bootstrap中模态框、模态框的属性实例详解
2017/02/17 Javascript
简单实现AngularJS轮播图效果
2020/04/10 Javascript
实例分析js事件循环机制
2017/12/13 Javascript
jQuery插件jsonview展示json数据
2018/05/26 jQuery
刷新页面后让控制台的js代码继续执行
2019/09/20 Javascript
详解js中的原型,原型对象,原型链
2020/07/16 Javascript
浅谈vue中document.getElementById()拿到的是原值的问题
2020/07/26 Javascript
在Python中操作时间之strptime()方法的使用
2020/12/30 Python
Python可变参数用法实例分析
2017/04/02 Python
python生成随机图形验证码详解
2017/11/08 Python
Python3多线程爬虫实例讲解代码
2018/01/05 Python
使用pandas对两个dataframe进行join的实例
2018/06/08 Python
Python使用requests提交HTTP表单的方法
2018/12/26 Python
详解Python3中ceil()函数用法
2019/02/19 Python
python使用隐式循环快速求和的实现示例
2020/09/11 Python
详解matplotlib绘图样式(style)初探
2021/02/03 Python
农业资源与环境专业自荐信范文
2013/12/30 职场文书
心得体会开头
2014/01/01 职场文书
幸福家庭事迹材料
2014/12/20 职场文书
Python趣味挑战之给幼儿园弟弟生成1000道算术题
2021/05/28 Python
教你如何使用Python实现二叉树结构及三种遍历
2021/06/18 Python
mybatis3中@SelectProvider传递参数方式
2021/08/04 Java/Android
一篇文章搞懂python混乱的切换操作与优雅的推导式
2021/08/23 Python
Vue elementUI表单嵌套表格并对每行进行校验详解
2022/02/18 Vue.js