原生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 数据类型转换总结笔记
Jan 17 Javascript
jquery下div 的resize事件示例代码
Mar 09 Javascript
jquery实现pager控件示例
Apr 09 Javascript
jQuery实现级联菜单效果(仿淘宝首页菜单动画)
Apr 10 Javascript
跟我学习javascript的undefined与null
Nov 17 Javascript
NODE.JS跨域问题的完美解决方案
Oct 20 Javascript
bootstrap table表格插件使用详解
May 08 Javascript
ES6入门教程之Iterator与for...of循环详解
May 17 Javascript
微信小程序实现图片上传放大预览删除代码
Jun 28 Javascript
使用 node.js 模仿 Apache 小部分功能
Jul 07 Javascript
详解Vue的watch中的immediate与watch是什么意思
Dec 30 Javascript
vue中可编辑树状表格的实现代码
Oct 31 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一句话cmdshell新型 (非一句话木马)
2009/04/18 PHP
Codeigniter校验ip地址的方法
2015/03/21 PHP
PHP提高编程效率的20个要点
2015/09/23 PHP
php操作access数据库的方法详解
2017/02/22 PHP
php的优点总结 php有哪些优点
2019/07/19 PHP
TP5框架实现自定义分页样式的方法示例
2020/04/05 PHP
jquery一句话全选/取消全选
2011/03/01 Javascript
javascript实时显示北京时间的方法
2015/03/12 Javascript
详解JavaScript中的every()方法
2015/06/08 Javascript
JavaScript中iframe实现局部刷新的几种方法汇总
2016/01/06 Javascript
详解JS: reduce方法实现 webpack多文件入口
2017/02/14 Javascript
VUE使用vuex解决模块间传值问题的方法
2017/06/01 Javascript
详解webpack4之splitchunksPlugin代码包分拆
2018/12/04 Javascript
JavaScript箭头函数中的this详解
2019/06/19 Javascript
[01:04:48]VGJ.S vs TNC Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
Python如何读取MySQL数据库表数据
2017/03/11 Python
Python使用正则表达式获取网页中所需要的信息
2018/01/29 Python
浅谈Pandas中map, applymap and apply的区别
2018/04/10 Python
Flask模拟实现CSRF攻击的方法
2018/07/24 Python
python随机数分布random均匀分布实例
2019/11/27 Python
Python中logging日志记录到文件及自动分割的操作代码
2020/08/05 Python
瑞典灯具和照明网上商店:Lamp24.se
2018/03/17 全球购物
保加利亚手表、香水、化妆品和珠宝购物网站:Brasty.bg
2020/04/22 全球购物
单位人事专员介绍信
2014/01/11 职场文书
军训自我鉴定范文
2014/02/13 职场文书
党员创先争优活动总结
2014/05/04 职场文书
参赛口号
2014/06/16 职场文书
环保公益策划方案
2014/08/15 职场文书
领导干部遵守党的政治纪律情况思想汇报
2014/09/14 职场文书
银行自荐信怎么写
2015/03/05 职场文书
2016年“12.3”国际残疾人日活动总结
2016/04/01 职场文书
辞职信怎么写?
2019/05/21 职场文书
医生行业员工的辞职信
2019/06/24 职场文书
浅谈哪个Python库才最适合做数据可视化
2021/06/28 Python
SQL Server代理:理解SQL代理错误日志处理方法
2021/06/30 SQL Server
我的收音机情缘
2022/04/05 无线电