原生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 Map List 遍历使用示例
Jul 10 Javascript
用js的document.write输出的广告无阻塞加载的方法
Jun 05 Javascript
jQuery事件委托之Safari
Jul 05 Javascript
前端设计师们最常用的JS代码汇总
Sep 25 Javascript
使用jquery给指定的table动态添加一行、删除一行
Oct 13 Javascript
设置jquery UI 控件的大小方法
Dec 12 Javascript
jQuery实现倒计时重新发送短信验证码功能示例
Jan 12 Javascript
BootStrap 表单控件之单选按钮水平排列
May 23 Javascript
vue脚手架vue-cli的学习使用教程
Jun 06 Javascript
JavaScript异步上传图片文件的实例代码
Jul 04 Javascript
详解JavaScript的数据类型以及数据类型的转换
Apr 20 Javascript
Kettle中使用JavaScrip调用jar包对文件内容进行MD5加密的操作方法
Sep 04 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
MySQL中create table语句的基本语法是
2007/01/15 PHP
比较全的PHP 会话(session 时间设定)使用入门代码
2008/06/05 PHP
常见的PHP五种设计模式小结
2011/03/23 PHP
php 批量查询搜狗sogou代码分享
2015/05/17 PHP
PHP获取用户客户端真实IP的解决方案
2016/10/10 PHP
Mac系统下安装PHP Xdebug
2018/03/30 PHP
jquery通过a标签删除table中的一行的代码
2013/12/02 Javascript
js 去掉空格实例 Trim() LTrim() RTrim()
2014/01/07 Javascript
js动态创建上传表单通过iframe模拟Ajax实现无刷新
2014/02/20 Javascript
js 获取input点选按钮的值的方法
2014/04/14 Javascript
基于JQuery制作可编辑的表格特效
2014/12/23 Javascript
Bootstrap 实现查询的完美方法
2016/10/26 Javascript
Vue.js实现模拟微信朋友圈开发demo
2017/04/20 Javascript
基于vue实现swipe轮播组件实例代码
2017/05/24 Javascript
ES6中的rest参数与扩展运算符详解
2017/07/18 Javascript
在 webpack 中使用 ECharts的实例详解
2018/02/05 Javascript
JavaScript常见继承模式实例小结
2019/01/11 Javascript
JavaScript实现抖音罗盘时钟
2019/10/11 Javascript
vue+animation实现翻页动画
2020/06/29 Javascript
基于javascript canvas实现五子棋游戏
2020/07/08 Javascript
JavaScript实现图片合成下载的示例
2020/11/19 Javascript
[04:48]DOTA2上海特锦赛小组赛第三日 TOP10精彩集锦
2016/02/28 DOTA
[54:06]OG vs TNC 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python sys模块sys.path使用方法示例
2013/12/04 Python
Python爬取数据保存为Json格式的代码示例
2019/04/09 Python
德国自行车商店:Tretwerk
2019/06/21 全球购物
总经理驾驶员岗位职责
2013/12/04 职场文书
五一劳动节活动记录
2014/03/23 职场文书
二手房购房意向书范本
2014/04/01 职场文书
环境科学专业求职信
2014/08/04 职场文书
小学生关于梦想的演讲稿
2014/08/22 职场文书
大学团日活动新闻稿
2014/09/10 职场文书
大学新生军训自我鉴定范文
2014/09/13 职场文书
表扬稿范文
2015/01/17 职场文书
公司费用报销管理制度
2015/08/04 职场文书
离婚起诉书范文2016
2015/11/26 职场文书