原生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 相关文章推荐
获取焦点时,利用js定时器设定时间执行动作
Apr 02 Javascript
了解jQuery技巧来提高你的代码(个人觉得那个jquery的手册很不错)
Feb 10 Javascript
jQuery中slice()方法用法实例
Jan 07 Javascript
jquery中ajax处理跨域的三大方式
Jan 05 Javascript
原生JS+Canvas实现五子棋游戏实例
Jun 19 Javascript
Node.js 基础教程之全局对象
Aug 06 Javascript
使用Vue自定义数字键盘组件(体验度极好)
Dec 19 Javascript
基于node搭建服务器,写接口,调接口,跨域的实例
May 13 Javascript
Vue父子组建的简单通信之控制开关Switch的实现
Jun 04 Javascript
一篇文章介绍redux、react-redux、redux-saga总结
May 23 Javascript
vue实现分页栏效果
Jun 28 Javascript
es6数组的flat(),flatMap()函数用法实例分析
Apr 18 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中调用ASP.NET的WebService的代码
2011/04/22 PHP
CodeIgniter配置之database.php用法实例分析
2016/01/20 PHP
php获取客户端IP及URL的方法示例
2017/02/03 PHP
自制PHP框架之模型与数据库
2017/05/07 PHP
对php 判断http还是https,以及获得当前url的方法详解
2019/01/15 PHP
javascript 单选框,多选框美化代码
2008/08/01 Javascript
javascript 函数声明与函数表达式的区别介绍
2013/10/05 Javascript
JSP中使用JavaScript动态插入删除输入框实现代码
2014/06/13 Javascript
jQuery构造函数init参数分析续
2015/05/13 Javascript
javascript中alert()与console.log()的区别
2015/08/26 Javascript
动态加载js、css的实例代码
2016/05/26 Javascript
confirm确认对话框的实现方法总结
2016/06/17 Javascript
js实现定时进度条完成后切换图片
2017/01/04 Javascript
基于datepicker定义自己的angular时间组件的示例
2018/03/14 Javascript
javascript实现文件拖拽事件
2018/03/29 Javascript
webpack安装配置与常见使用过程详解(结合vue)
2020/06/01 Javascript
Vue前端判断数据对象是否为空的实例
2020/09/02 Javascript
js异步接口并发数量控制的方法示例
2020/11/22 Javascript
用vue设计一个日历表
2020/12/03 Vue.js
python的即时标记项目练习笔记
2014/09/18 Python
python创建文件备份的脚本
2018/09/11 Python
对pyqt5中QTabWidget的相关操作详解
2019/06/21 Python
Python使用py2neo操作图数据库neo4j的方法详解
2020/01/13 Python
python如何实现单链表的反转
2020/02/10 Python
详解python的xlwings库读写excel操作总结
2021/02/26 Python
介绍一下木马病毒的种类
2015/07/26 面试题
销售文员的岗位职责
2013/11/20 职场文书
幼儿园实习自我鉴定
2013/12/15 职场文书
会计电算化专业毕业生自荐信
2013/12/20 职场文书
2014年幼儿园后勤工作总结
2014/11/10 职场文书
升学宴答谢词
2015/01/05 职场文书
会计求职自荐信
2015/03/26 职场文书
企业党员岗位承诺书
2015/04/27 职场文书
金正昆讲礼仪观后感
2015/06/11 职场文书
再也不用花钱买漫画!Python爬取某漫画的脚本及源码
2021/06/09 Python
SQL Server中搜索特定的对象
2022/05/25 SQL Server